如下制作一个第三方组件:
@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"?>
注意这里不要引入springboot的插件,用maven原生的,否则使用maven install的时候,其他工程引入不进去
在另外一个工程中maven引入:
用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提高了第三方组件的可扩展性