我使用一个库,其中包含
public class MyFilter extends FilterParent { ... }
and
@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”。
我怎样才能在不改变 "AutoConf "的情况下加载一个 "MyNewFilter "bean,而不是 "MyFilter "bean?
StackOverflow:java - How to replace a ConditionalOnMissingBean bean? - Stack Overflow