如何解决如何替换 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
}
}
正确加载。我无法更改此库,但我想加载不同的过滤器
我试过了
@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 天内接受。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。