美文网首页设计方案
YML语法及配置

YML语法及配置

作者: YAOPRINCESS | 来源:发表于2020-03-30 20:49 被阅读0次

    YML配置文件

    SpringBoot使用一个全局的配置文件,配置文件名称是固定的

    • application.properties
      • 语法:key=value
    • application.yml
      • 语法:key:空格 value

    配置文件的作用:修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了

    YAML(YML)

    XML配置

    <server>
        <port>8080</port>
    </server>
    

    YML配置

    server:
        port: 8080
        
    # 空格是不能缺少的
    

    yml与properties进行对比

    application.properties

    #只能保存键值对
    
    name=kang
    
    student.name=kang
    student.age=1
    

    application.yml

    #k=v
    #对空格的要求十分高
    
    #注入到我们的配置类
    
    #普通的key-value
    name: kang
    
    #对象
    student:
        name: kang
        age: 1
    
    #对象行内写法
    student: {name: kang,age: 1}
    
    #数组
    pets:
        - cat
        - dog
        - pig
        
    #数组行内写法
    pets: [cat,dog,pig]
    

    yml可以给实体类赋值(注入)

    1. 定义一个pojo包下的Person类

      @Data        //lombok的注解,在编译时修改源码
      @Component   //这个注解相当于<bean id= ...>
      @ConfigurationProperties(prefix="person")
      //另一种方式,加载指定的配置类 @PropertySource(value="classpath:kang.properties"),然后在每个属性上@Vale("$(name)")
      public class Person{
          @Value("老王")
          private String name;
          private Integer age;
          private Boolean happy;
          private Date birth;
          private Map<String,Object>maps;
          private List<Object> lists;
          private Dog dog;
      }
      
    2. yml

      person:
        name: kang$(random.uuid)
        age: 1
        happy: false
        birth: 2019/11/02
        #maps是一个键值对,是一个对象
        maps: {k1: v1,k2: v2}
        #或者
        maps:
           k1: v1
           k2: v2
        #lists是一个集合框架,它是一个数组
        lists: 
           - code
           - music
           - girl
        #dog是一个类
        dog:
           name: 旺财
           #name: ${person.hello:hello}_旺财
           age: 1
      
    3. 使用@ConfigurationProperties注解

      1. 如果不配置使用了这个注解就会提示爆红
    4. 如何绑定

      1. 加上prefix="person"

        @ConfigurationProperties(prefix="person")

      2. 绑定起来就有注入的值了

    测试:@Autowired

    ​ Person person=new Person();

    多环境配置及配置文件位置

    配置文件加载优先级:从上到下

    • file:./config/
    • file:./
    • classpath:/config/
    • classpath:/

    多环境切换

    properties

    springboot的多环境配置,可以选择激活哪一个环境

    spring.profiles.active=dev

    • application.properties
    • application-dev.properties
    • application-test.properties

    yml

    通过---,不用分多个文件

    server:
        port:8081
    #默认当前,可选择激活版本
    spring:
        profiles:
            active:dev
        
    ---
    server:
        port:8082
    spring:
        profiles: dev
    ---
    server:
        port:8083
    spring:
        profiles:test
    #spring.profile起名
    

    相关文章

      网友评论

        本文标题:YML语法及配置

        本文链接:https://www.haomeiwen.com/subject/mpkbuhtx.html