• spring boot 配置文件


    配置文件作用

    整个项目的重要的数据都是在配置文件中配置的,如:
    (1)数据库的连接信息
    (2)项目的启动端口
    (3)第三⽅系统的调⽤秘钥等信息
    (4)⽤于发现和定位问题的普通⽇志和异常⽇志等

    配置文件的分类

    (1)系统的配置文件,比如连接字符串、日志的相关设置,系统定义好的
    (2)用户自定义的。

    配置文件格式

    (1).properties
    (2).yml

    规则:
    (1)一个项目中可以存在两种配置文件(.properties和yml),但是不建议一个项目中出现两种配置文件。
    (2)当一个项目的某个配置,出现在两种格式的配置文件时,配置项会以properties为主(忽略yml中的配置)

    如果properties文件没有提示信息,那么就需要安装spring tools插件。

    properties

    properties配置文件基本语法

    key=value
    等号前后不能加空格,value后也不能加空格。
    在这里插入图片描述

    关于properties中文乱码的问题处理。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    设置完成之后,将原来的application.properties删除掉,重新在创建一个application.properties。因为之前的配置文件已经是不支持中文编码的文件格式化,设置编码在创建application.properties之后,所以,后设置的编码不会改变原来的旧的application.properties文件,所以,需要先将之前的配置文件删除掉重新创建。

    读取单个的配置文件

    使用value注解来实现。

    @Controller
    public class UserController {
    
    
        @Value("${server.port}") //读取配置项
        private Integer port;
    
    
        @ResponseBody //返回一个非静态页面的数据
        @RequestMapping("/sayhi")//设置路由地址
        public  String sayHi(){
            return "hello world | port:" + port;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    这里是引用

    properties 缺点

    properties 配置⽂件中会有很多的冗余的信息。
    在这里插入图片描述
    想要解决这个问题,就可以使⽤ yml 配置⽂件的格式化.

    yml

    特点

    (1)写法简单、可读性高
    (2)支持更多的数据类型
    (3)跨语言使用:Java、golang

    基本语法

    key: value key 和value之间使用冒号加空格的方式组成,空格不可省略。

    spring:
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
        name: root
        password: 1111111
    
    • 1
    • 2
    • 3
    • 4
    • 5

    yml单双引号

    mystring: 你好\n世界
    mystring2: '你好\n世界'
    mystring3: "你好\n世界"
    
    • 1
    • 2
    • 3

    这里是引用

    结论:yml中如果使用了双引号,就会按照原语义执行,如果不加单、双引号,或者加了单引号,那么默认会将字符串中的特殊字符进行转义。

    yml对象配置读取

    #对象写法1
    student:
      id: 1
      name: 小明
      age: 14
    
    #对象写法2
    student2: {id: 2,name: 李四,age: 10}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    读取对象:

    @Data
    @ConfigurationProperties(prefix = "student") //读取对象
    @Component //不能省略
    public class Student {
        private int id;
        private String name;
        private int age;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    yml中集合的读与写

    # 集合
    dbtypes: { name: [mysql,sqlserver,db2]}
    
    • 1
    • 2
    @Component
    @Data
    @ConfigurationProperties("dbtypes") //读取配置文件中的集合
    public class ReadList {
        private List<String> name;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这里是引用

  • 相关阅读:
    EMD、EEMD、FEEMD、CEEMDAN分解的对比(其中CEEMDAN分解可以有效消除模态分解)
    分布式锁的特点和实现
    【Linux】线程
    岛屿的最大面积leetcode
    Reflection - 浅谈Python反射
    git2:git概述
    第九章 JDBC
    BUUCTF-WEB-[ACTF2020 新生赛]Includel
    小程序开发:接入腾讯云的人像动漫化api接口
    构造pop链
  • 原文地址:https://blog.csdn.net/m0_62824239/article/details/125872104