SpringBoot 的配置文件

SpringBoot 下的配置文件 有两种(名字是固定的)  当项目中有两个文件时 application.properties的优先级更高

  • application.properties
  • application.yml

两种的作用是一样的 只是写法不一样 

就比如 你要配置端口号 

application.properties

server.port=80

application.yml 

server:
port: 80

我这主要记录 yml 配置文件
  1. 字符串默认不要加 双引号 或单引号
  2. "":双引号 不会转义特殊字符串 例如 "zhang \n san" 输出就是 zhang 换行 san
  3. '':单引号 会转义特殊字符串 例如 '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

 

 



 

猜你喜欢

转载自www.cnblogs.com/closeIt/p/11116248.html