@ConfigurationProperties
spring-boot 提供该注解将配置文件的值映射到类上使用。
例子:
1,这是我们在application.yml配置的druid连接池学习
2.通过@ConfigurationProperties
注解则会将值映射到该类中
3.通过@Autowired
标签即可访问到该对象,不过在使用之前必须在使用类上面增加注解@EnableConfigurationProperties(DruidDataSourceProperties.class)
属性分析:
@ConfigurationProperties内的值“spring.datasource.druid”代表的是前缀如spring.datasource.druid.testWhileIdle。
也可以写成如下这样,prefix代表前缀,locations 代表映射的文件路径。
@ConfigurationProperties(locations = "classpath:application.yml",
prefix = "spring.datasource.druid")
@ConfigurationProperties的实体还支持分层结构(hierarchical structure)。可以在DruidDataSourceProperties内再建立实体属性。
@ConfigurationProperties("spring.datasource.druid")
public class DruidDataSourceProperties {
public static class Stat {
private boolean mergeSql;
private short slowSqlMillis;
// ... getters and setters
}
}
代表的含义就是spring.datasource.druid.stat.mergeSql 属性。