SpringBoot 下的配置文件 有两种(名字是固定的) 当项目中有两个文件时 application.properties的优先级更高
- application.properties
- application.yml
两种的作用是一样的 只是写法不一样
就比如 你要配置端口号
application.properties
server.port=80
application.yml
server:
port: 80
我这主要记录 yml 配置文件
- 字符串默认不要加 双引号 或单引号
- "":双引号 不会转义特殊字符串 例如 "zhang \n san" 输出就是 zhang 换行 san
- '':单引号 会转义特殊字符串 例如 'zhang \n san' 输出就是 zhang \n san
yml 有map 属性 yml 在 : 之后都要空一格在写值
friends: name: zhangsan age: 20
行内写法
friends: {name: zhang,age: 20}
list
fruit: - apple - apple - grape #行内写法 fruit: [apple,apple,grape]
配置文件值的注入
yml的配置文件写法
person: last-name: lisi age: 22 boss: true birth: 2019/07/02 map: {k1: v1,k2: v2} list: [a1,a2,a3] dog: name: xiao age: 2
properties下配置文件的写法
person.last-name=lishi person.age=18 person.birth=1997/02/02 person.boss=true person.map.k1=12 person.map.k2=24 person.list=1,2,3 person.dog.name=xiao person.dog.age=2
@Component//这个注解表示 把下面的注解加到容器当中去 这样才会起作用 @ConfigurationProperties(prefix = "person")//person 对应的是配置文件的参数名 public class ConfigurationModel { private String lastName; private Integer age; private boolean boss; private Date birth; private Map<String,Object> map; private List<Object> list; private Dog dog; }
<!--导入配置文件处理器 配置文件进行绑定就会有提示 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
绑定语法 除了
@ConfigurationProperties(prefix = "person")外 还可以
@Value("${person.last-name}") private String lastName; @Value("#{11*2}") private Integer age; @Value("true") private boolean boss;
用 @Value() 进行单个绑定
@Value() 支持 sqEL
比如
@Value("#{11*2}")//可以
person.age=#{11*2}//类型转换异常
@Value() 不支持 JSR303 数据校验
@Component @ConfigurationProperties(prefix = "person")//支持邮箱验证 @Validated public class ConfigurationModel { //@Value("${person.last-name}")//不支持邮箱验证 @Email private String lastName; @Value("#{11*2}") private Integer age; @Value("true") private boolean boss; private Date birth; private Map<String,Object> map; private List<Object> list; private Dog dog;
我是观看的别人的视频敲的 写博客 就相当于做个笔记
视频地址
https://www.bilibili.com/video/av38657363/?p=14