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文件中文乱码的解决方案:

  • 相关阅读:
    Java开发之富文本编辑器TinyMCE
    将博客搬至CSDN
    利用Docker搭建java项目开发环境
    Linux上传和下载之Xshell
    JSP中利用JSTL标签对日期格式化
    MySQL数据库localhost的root用户登陆遭遇失败
    CentOS7下 简单安装和配置Elasticsearch Kibana Filebeat 快速搭建集群日志收集平台(版本6.x)
    CentOS下递归遍历文件夹下所有文件,查找指定字符
    谷歌浏览器插件不让离线安装怎么办?
    X-Forwarded-For 会少记录一次代理服务器的IP
  • 原文地址:https://www.cnblogs.com/zhai1997/p/13308360.html
Copyright © 2011-2022 走看看