-
配置文件是有优先级的
application.properties > application.yml > application.yaml
yml的配置文件语法规则:
- 大小写敏感
- 属性的层次关系使用多行描述,每行结尾使用冒号结束
- 使用缩进表示层级关系。同层级左侧对齐,只允许使用空格(不要使用Tab键)
- 属性值前面需要添加空格(属性名与属性值之间使用冒号 + 空格作为分隔)
- 在配置文件中,#作为注释
使用注解可以直接获取配置文件里的配置项和配置值
- 获取单个配置项时,使用@Value注解:@Value("${配置名称}"), 如果配置名称有多层级,使用.分隔
比如要获取以上配置项,给到类中的成员变量上:
class Demo {
@Value("${spring.datasource.username}")
private String username;
}
- 把一批配置项都整体使用JAVA接收
- 定义一个JavaBean(POJO),类中属性名要一一的和yml中的配置项名称对应
- 给这个POJO添加getter/setter方法
- 让它变成一个可以被Spring容器管理的组件,添加@Configuration注解,注意:本身@Configuration注解本质上就是一个@Component,但是它的语义化更好。类似的还有@Controller,@Service等注解
- 添加@ConfigurationProperties注解,标明要使用哪个配置段,在注解中使用prefix进行标明:例子:@ConfigurationProperties(prefix = "student")
- 使用时,在使用的地方使用@Autowired自动注入即可