问题描述
我使用一个包含
的库public class MyFilter extends FilterParent { ... }
和
@Configuration
public class AutoConf
{
@Bean
@ConditionalOnMissingBean(FilterParent.class)
public MyFilter myFilter ()
{
return new MyFilter (); // <------- I want to replace this
}
}
正确加载。我无法更改此库,但我想加载不同的过滤器
我试过了
@Component
public class MyNewFilter extends MyFilter { ... }
并修改应用类
@SpringBootApplication
public class Application
{
public static void main (String[] args)
{
SpringApplication.run (Application.class,args);
}
@Bean
public CommandLineRunner commandLineRunner (ApplicationContext ctx)
{
return args -> {
// startup code
};
}
@Bean
public MyFilter myFilter ()
{
return new MyNewFilter (); // <----------- THIS IS NEW
}
}
但我仍然加载了 MyFilter
而不是 MyNewFilter
。
如何在不更改 MyNewFilter
的情况下加载 MyFilter
bean 而不是 AutoConf
加载的 AutoConf
bean?
解决方法
试试这个。
@SpringBootApplication
public class Application
{
public static void main (String[] args)
{
SpringApplication.run (Application.class,args);
}
@Bean
public CommandLineRunner commandLineRunner (ApplicationContext ctx)
{
return args -> {
// startup code
};
}
@Bean
public MyNewFilter myFilter ()
{
return new MyNewFilter (); // <----------- THIS IS NEW
}
}
,
@chrylis-cautiouslyoptimistic- 是正确的,正在加载新组件。由于无关的原因,应用程序行为异常。
我无法删除帖子,所以我会在 2 天内接受。