SpringBoot配置
SpringBoot学习之SpringBoot配置
1.SpringBoot属性注入方式
目标:能够使用@ConfigurationProperties实现SpringBoot配置文件配置项读取和应用
需求:将配置文件中的配置项读取到一个对象中;
实现:可以使用SpringBoot提供的注解@ConfigurationProperties,该注解可以将SpringBoot的配置文件(默认必须为application.properties或application.yml)中的配置项读取到一个对象中。
实现步骤:
- 创建配置项类JdbcProperties类,在该类名上添加@ConfigurationProperties;
- 创建application.properties配置文件,并写入jdbc配置项;
- 将JdbcProperties对象注入到JdbcConfig;
- 测试
小结:
-
使用@ConfigurationProperties编写配置类将配置文件中的配置项设置到对象中
@ConfigurationProperties(prefix = "jdbc") public class JdbcProperties { private String url; private String driverClassName; private String username; private String password; public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getDriverClassName() { return driverClassName; } public void setDriverClassName(String driverClassName) { this.driverClassName = driverClassName; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
-
使用@ConfigurationProperties在方法上使用
@Bean @ConfigurationProperties(prefix = "jdbc") public DataSource dataSource() { return new DruidDataSource(); }
2.yml文件配置
目标:可以将多个yml文件在application.yml文件中配置激活
分析:yaml与properties配置文件除了展示形式不相同以外,其他功能和作用都一样的;在项目中的原来的读取方式不需要改变。
yml配置文件的特征:
- 树状层级结构展示配置项;
- 配置项之间如果有关系的话需要分两行空格;
- 配置项如果有值的话,那么需要在
:
之后空一格再写配置项值;
1)将application.properties配置文件修改为application.yml的话;
jdbc:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot_test
username: root
password: root
2)多个yml配置文件在SpringBoot中是被允许的。这些配置文件的名称必须为application-***.yml,并且这些配置文件必须要在application.yml配置文件中激活之后才可以使用。
spring:
profiles:
active: abc //abc即为application-abc.yml
3)如果properties和yml配置文件同时存在在SpringBoot项目中,那么这两类配置都有效。在两个配置文件中如果存在同名配置项的话会以properties文件的为主。