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=lishiperson.age=18person.birth=1997/02/02person.boss=trueperson.map.k1=12person.map.k2=24person.list=1,2,3person.dog.name=xiaoperson.dog.age=2
@Component//这个注解表示 把下面的注解加到容器当中去 这样才会起作用@ConfigurationProperties(prefix = "person")//person 对应的是配置文件的参数名 public class ConfigurationModel { private String lastName; private Integer age; private boolean boss; private Date birth; private Mapmap; private List
org.springframework.boot spring-boot-starter-test test
绑定语法 除了
@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")//支持邮箱验证@Validatedpublic 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 Mapmap; private List
我是观看的别人的视频敲的 写博客 就相当于做个笔记
视频地址