• springboot的配置文件


    一、springboot的配置文件

    通常有:

    application.properties

    application.yaml

    application.yml三种

    .properties是创建springboot工程自动创建的,也是以前web等技术或spring框架的默认配置文件格式。

    yaml和yml我目前还不知道哪个用的多,我一般会用yml,因为优先级较yaml高。

    二、配置

    .properties中的配置形式是键值对形式

    例如:

    1.服务器端口配置:server.port=8080

    2.修改springboot启时的logo:

    添加在resources下添加banner.txt,里面写想要的样子

    我写了下面这个:

     ____   _         _
    |  _  (_)       | |
    | |_) | _   __ _ | |      ___    __ _   ___
    |  _ < | | / _` || |     / _   / _` | / _ 
    
    • 1
    • 2
    • 3
    • 4

    | |) || || (| || || () || (| || () |
    |
    / || , |||_/ __, | _/
    / | / |
    |
    / |
    /

    修改后:

    3.修改日志的配置:

    可以设置指定目录的日志级别,默认的值是“info”

    logging.level.root=info
    logging.level.com.xxx=warn/debug
    
    • 1
    • 2

    三、三者的优先级

    properties>yml>yaml

    三者都在的时候:

    拿走properties,剩下yaml和yml时:

    由此得出优先级顺序是properties>yml>yaml

    四、yml里面的数据格式(数据前面要用空格和冒号隔开)

    1.数据格式特点:

    大小写敏感;

    属性层级关系使用多行描述,每行结尾使用冒号结束;

    使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键,貌似idea会自动识别);

    属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔);

    # 表示注释。

    2.键值对表示方式:

    boolean: TRUE #TRUE,true,True大小写均可,false也一样
    float: 3.14 #6.8523015e+5 #支持科学计数法
    int: 123 #0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制
    null: ~ #~表示null
    string: HelloWorld #字符串可以直接书写
    string2: "Hello World" #可以使用双引号包裹特殊字符
    date: 2018-02-17 #日期必须使用yyyy-MM-dd格式
    datetime: 2018-02-17T15:02:31+08:00 #时间和日期之间使用T连接,最后使用+代表时区(这个一般少见)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.数组表示方法:

    likes:
      - eat
      - basketball
      - sleep
    
    liks2: [eat,basketball,sleep]
    
    users:
      - name: zhangsan
        age: 23
      - name: lisi
        age: 22
    //一个横线就是一组数据
    users3: [{name:zhangsan,age:23},{name:lisi,age:24}] //还可以按照JSON格式来写
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    五、读取yml数据

    使用 @Value 读取单个数据,属性名引用方式: ${一级属性名.二级属性名……}

    1.读取单个数据

    比如我想读取张三的年龄:

    @Value("${users[0].age}")
    private String age; //这个命名为age只是为了好看,与要读取的变量名无关
    
    • 1
    • 2

    注意:属性值中如果出现转移字符,需要使用双引号包裹( 和 就是转义字符)

    lesson: "Spring	boot
    lesson"
    
    • 1
    • 2

    2.使用Environment对象封装全部配置信息

    还是打印刚刚张三的年龄:

    @Autowired
    private Environment environment;
    
    System.out.println(env.getProperty("user[0].name"));
    
    • 1
    • 2
    • 3
    • 4

    3.封装一组数据(自定义对象封装指定数据)

    相较于封装全部数据,封装一组数据,我可以想拿什么就拿什么

    datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     url: jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC
     username: root
     password: 密码
    
    @Component
    @ConfigurationProperties(prefix = "datasource")
    public class DataSource {
        private String driverClassName;
        private String url;
        private String userName;
        private String password; 
    }
    
    @RestController
    @RequestMapping("/run")
    public class RunController {
        @Autowired
        private MyDataSource myDataSource;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    这样就可以拿到我自己定义的dataSource配置的数据了

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    Cocos3.x 对象池NodePool使用介绍和注意事项
    Rust 过程宏 proc-macro 是个啥
    buuctf web [ACTF2020 新生赛]Upload
    为什么要考NISP
    IDEA运行项目报错:Command line is too long的解决办法
    通过jsoncpp读取JSON文件
    【LeetCode】191. 位1的个数
    C语言函数章--该如何学习函数?阿斗看了都说会学习了
    网卡状态检测函数
    CSS 毛玻璃特效运用目录
  • 原文地址:https://blog.csdn.net/m0_67403188/article/details/126115221