[英]How to extend default bean annotated with @ConditionalOnMissingBean?
[英]How to replace a ConditionalOnMissingBean bean?
我使用一个包含
public class MyFilter extends FilterParent { ... }
和
@Configuration
public class AutoConf
{
@Bean
@ConditionalOnMissingBean(FilterParent.class)
public MyFilter myFilter ()
{
return new MyFilter (); // <------- I want to replace this
}
}
正确加载。 我无法更改此库,但我想加载不同的过滤器 bean
我试过了
@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 而不是AutoConf
加载的MyFilter
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 天内接受这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.