ConfigurationProperties,@ConditionalOnClass,@EnableConfigurationProperties,@PropertiesSource

我们还可以通过@ConfigurationProperties 读取application属性配置文件中的属性。

@ConfigurationProperties (prefix =  "spring.data.mongodb" )
publicclass MongoProperties {
  
     private  String host;
     privateint port = DBPort.PORT;
     private  String uri =  "mongodb://localhost/test" ;
     private  String database;
  
     // ... getters/ setters omitted
}

@ConditionOnClass表明该@Configuration仅仅在一定条件下才会被加载,这里的条件是Mongo.class位于类路径上

· @EnableConfigurationProperties将Spring Boot的配置文件(application.properties)中的spring.data.mongodb.*属性映射为MongoProperties并注入到MongoAutoConfiguration中。

· @ConditionalOnMissingBean说明Spring Boot仅仅在当前上下文中不存在Mongo对象时,才会实例化一个Bean。这个逻辑也体现了Spring Boot的另外一个特性——自定义的Bean优先于框架的默认配置,我们如果显式的在业务代码中定义了一个Mongo对象,那么Spring Boot就不再创建。

Configuration
@ConditionalOnClass (Mongo. class )
@EnableConfigurationProperties (MongoProperties. class )
publicclassMongoAutoConfiguration {
  
     @Autowired
     private  MongoProperties properties;
  
}

以上这个配置需要加入依赖:

< dependency >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-configuration-processor</ artifactId >
< optional >true</ optional >
</ dependency >

通过@PropertiesSource读取配置文件中的属性
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值