一、获取属性:用(:设置默认值)redis
@Value("${mode.cache:redis}")spring
private String mode;bootstrap
二、当用@Value取属性的时候,SpringBoot默认是报错的。app
/**.net
* 描 述:忽略配置不存在server
* 建立时间: 2018/05/22rabbitmq
*/get
@Configurationkafka
public class PropertyIgnoreConfig {it
public static PropertySourcesPlaceholderConfigurer placeholderConfigurer() {
PropertySourcesPlaceholderConfigurer c = new PropertySourcesPlaceholderConfigurer();
c.setIgnoreUnresolvablePlaceholders(true);
return c;
}
}
三、根据属性动态加载类
当application中的key/value,相等的时候加载对应的类。若是属性不存在,不会加载对应类
@Component
@ConditionalOnProperty(name = RedisMode.CAHCE_MODE_KEY,havingValue = RedisMode.CACHE_MODE_EHCACHE)
public class RedisHealthIndicator implements HealthIndicator {}
当application中的key存在spring.kafka.bootstrap-servers为true,不存在为false
@ConditionalOnProperty(prefix = "spring.kafka",name = "bootstrap-servers")
public class RedisHealthIndicator implements HealthIndicator {}
设置默认值为true,当spring.rabbitmq.addresses不存在的时候,加载对应类
@ConditionalOnExpression("'${spring.rabbitmq.addresses:true}'=='true'")
public class RabbitHealthIndicator implements HealthIndicator {