结论:
-
matchIfMissing=false and havingValue=“” (这是两个属性的默认值):
my.website即Property对应的值不为false,条件匹配,配置类会注入到容器中.
my.website即Property对应的值为false 或 Property不存在时,条件不匹配,配置类不会注入到容器中. -
matchIfMissing=false and havingValue != “”:
my.website即Property对应的值等于havingValue的值,条件匹配,配置类会注入到容器中.
my.website即Property对应的值不等于havingValue的值 或 Property不存在,条件不匹配,配置类不会注入到容器中. -
matchIfMissing=true and havingValue=“”:
my.website即Property对应的值不为false 或 Property不存在,条件匹配,配置类会注入到容器中.
my.website即Property对应的值为false时,条件不匹配,配置类不会注入到容器中. -
matchIfMissing=true and havingValue != “”:
my.website即Property对应的值等于havingValue的值 或 Property不存在,条件匹配,配置类会注入到容器中.
my.website即Property对应的值不等于havingValue的值,条件不匹配,配置类不会注入到容器中.
下面是案例,可以自己创建文件测试一下
// 一.配置类
@Configuration
@ConditionalOnProperty(name = "my.website",matchIfMissing = true,havingValue = "true")
public class BeanConfig4 {
}
// 二.主程序
public class MainApp {
public static void main(String[] args) {
//启动springboot应用程序/项目
ConfigurableApplicationContext ioc =
SpringApplication.run(MainApp.class, args);
BeanConfig4 beanConfig4 = ioc.getBean(BeanConfig4.class);
System.out.println("beanConfig4 = " + beanConfig4);
}
}
// 三.application.properties
#my.website=www.bilibili.com