欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

用@ConditionalOnMissingBean实现覆盖第三方组件中的bean

时间:2023-06-24

如下制作一个第三方组件:

@Configurationpublic class MyfgConfig { @Bean @ConditionalOnMissingBean public Myfg getMyfg(){ return new Myfg(); }}

public class Myfg { public void say(){ System.out.println("-------------1----------"); }}

<?xml version="1.0" encoding="UTF-8"?>4.0.0org.springframework.bootspring-boot-starter-parent2.2.2.RELEASEcom.exampledemo0.0.1-SNAPSHOTdemoDemo project for Spring Boot1.8org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-testtest

注意这里不要引入springboot的插件,用maven原生的,否则使用maven  install的时候,其他工程引入不进去

 在另外一个工程中maven引入:

com.example demo 0.0.1-SNAPSHOT

用import注解注入到此spring容器中,启动之后,看打印日志是:

我们再添加两个类:

@Configurationpublic class MongodbConfig { @Bean public Myfg getMongoTemplate(){ return new MongoTemplateCz(); }}

public class MongoTemplateCz extends Myfg { @Override public void say() { System.out.println("-------------2----------"); }}

再次启动,看打印日志:

至此,完美覆盖了 第三方组件的bean ,所以@ConditionalOnMissingBean提高了第三方组件的可扩展性

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。