![](/img/trans.png)
[英]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.