我们还可以通过@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读取配置文件中的属性