zoukankan      html  css  js  c++  java
  • springboot:springboot的配置(yaml文件方式和properties文件方式)

    1、配置文件

    (1)全局的配置文件

    名称有两种:

    application.properties和application.yml

    (2)作用

    修改springboot自动配置的默认值(之所以springboot能够自动启动,就是因为springboot的底层已经配置了)

    2、YAML(YAML  Aint's Markup Language)

    (1)特点

    以数据为中心,比json和xml等更适合做配置文件

    (2)yaml配置方式与xml方式对比

    yaml方式:

    server:
      port: 8081

    xml方式:

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

    测试:

     要注意:port:后面要加空格

    3、YAML语法

    (1)基本语法

    • k:空格v  表示一对键值对
    • 以空格的缩进来控制层级关系,只要是左对齐的一列都指同一层级,如:
    server:
      port: 8081
      path: /nnnn
    • 属性和值是大小写敏感的

    (2)值的写法

    字面量(数字、字符串、布尔)

    server:
      port: 8081
      path: /nnnn

    写法为  k:v:空格  字面量

    字符串默认不用加上单引号或者双引号,加上双引号的话,不会转义字符串里面的特殊字符,也就是说特殊字符依旧有效;单引号会转义特殊字符

    对象

    student:
      name: zhai
      age: 23

    行内写法:

    student:{name: zhai,age: 23}

    数组:

    用-值的方式来表示数组中的一个元素

    students:
      - zhai
      - zhang
      - liu
      - tom

    行内写法:

    students: [zhai,zhang,liu,tom]

     (3)获取yaml配置文件中的数据

    定义两个实体类,其中student实体类的属性包括Course类:

    @Data
    @Component
    @ConfigurationProperties(prefix = "student")//告诉springboot将本类中的所有属性和配置文件的相关配置进行绑定
    public class Student {       //prefix:配置文件中哪一个名称下面的属性进行一一映射
        private String sname;
        private int age;
        private Map<String,Object> maps;
        private List<Object> list;
        private Course course;
    }
    @Data
    public class Course {
        private String courseno;
        private String coursename;
    }

    创建yaml配置文件:

    student:
      sname: zhai
      age: 12
    
      maps: {k1: 12,k2: 13}
      list:
        - zhai
        - zhang
      course:
        courseno: 202007
        coursename: javaweb

    创建properties文件:

    #配置student
    student.age=12
    student.sname=zhai
    student.maps.k1=1
    student.maps.k2=2
    student.list=a,b,c
    student.course.courseno=202007
    student.course.coursename=java

    测试类:

    //可以在测试期间很方便地类似编码一样进行自动注入等容器的功能
    @SpringBootTestclass Springboot03ApplicationTests {
        @Autowired
        Student student;
        @Test
        void contextLoads() {
            System.out.println(student);
        }
    }

    需要导入的依赖:配置文件处理器,配置文件进行绑定会有提示

       <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <version>2.2.1.RELEASE</version>
       </dependency>

     (4)properties文件中文乱码的解决方案:

  • 相关阅读:
    sql2012,返回数据多时不走索引
    JeeSite 工作流Activiti的应用实例
    A011 Activiti工作流程开发的一些统一规则和实现原理(完整版)
    mstsc远程桌面全频或自定义窗口
    ECLIPSE 取消自动更新
    js中设置元素class的三种方法小结
    python笔记28-lxml.etree爬取html内容
    python笔记27-lxml.etree解析html
    Locust性能测试3-no-web模式和csv报告保存
    Locust性能测试2-先登录场景案例
  • 原文地址:https://www.cnblogs.com/zhai1997/p/13308360.html
Copyright © 2011-2022 走看看