• [JAVAee]SpringBoot配置文件


    目录

    配置文件的介绍

    配置文件的格式

    properties与yml的优先级

    properties配置文件的说明 

    基本语法

    读取配置文件信息

    缺点分析

    yml配置文件的说明

    基本语法 

    使用

    ①与properties对比

    ②配置数据类型

     ③配置对象

    读取 


    配置文件的介绍

    配置文件当中记录了许多重要的配置信息,例如:

    • 数据库的连接信息(用户的账户与密码)
    • 项目的启动端口
    • 第三方系统的调用密匙
    • 用于记录问题产生的日志

    在spring框架中一些特定的框架会自动调用配置文件中的配置信息来运用.

    配置文件中的属性也起到了类似全局变量的作用. 

    对于一个项目,可以准备多种配置文件方便自由调用来应对不同的情况.

    放置在resources目录下 

    配置文件的格式

    Spring Boot的配置文件的格式主要有两种:

    • .properties(spring boot默认)
    • .yml

    properties与yml都是配置文件,类似于同一件实物来说,properties是旧版的而yml是新版的.

    properties与yml的优先级

    properties与yml可以出现在同一个项目当中,还是建议在一个项目下使用同一种类型的配置文件.

    但properties的优先级会更高,项目先加载properties中的配置,在这之后才去加载yml的.

     下面来示范一下.

    ①在同一个项目中分别放置properties与yml的配置文件

    ②分别在两种配置文件中配置同一属性的信息

    yml配置的端口号为:666

    properties配置的端口号为:123 

    ③在类中调用并打印查看结果

    观察得到,打印的端口号为123,即是properties配置文件中的信息. 

    注意,虽然properties配置文件在SpringBoot的优先级更高.但并不表示不会载入yml的信息噢,只是在同一个属性上优先使用properties中的信息. 

    properties配置文件的说明 

    properties是配置文件的早期文件类型,是spring boot的默认配置文件类型

    基本语法

    在properties是以键值对的方式来赋值,其中key与value是以"="来连接.

    1. server.port = 123
    2. #使用"#"在配置文件中进行注释

    读取配置文件信息

    在项目中想实现配置文件中内容的读取,可以使用@Value注解来实现

    其中@Value注解的格式为${}

    @Value("${server.port}")

    缺点分析

    当在配置相近的内容时,会额外的产生冗余的信息.

    yml配置文件的说明

    yml是yaml的缩写,全称为:Yet Another Markup Language(另一种标记语言).

    对于properties来说,yml支持了更多的编程语言.还支持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件.

    基本语法 

    yml的语法与JSON差不多,但yml使用":" + "(空格)"的形式组合连接key与value,其中的空格不要省略噢.

    server.port: 666

    对比: 

    使用

    ①与properties对比

    左边为yml,右边为properties.

    可以观察到yml中的书写更为简便一些. 

    ②配置数据类型

    yml还可以配置数据类型以及null(properties不可配置数据类型噢~)

     ③配置对象

    写法一:

    写法二:

    配置文件中对象的读取

     对于yml中的对象就不能使用@Value来读取了

    而是使用@ConfigurationProperties.

    1. @ConfigurationProperties(prefix = "student1")//student1为yml中对象名称
    2. @Component
    3. public class Student {
    4. private int age;
    5. private String name;
    6. private String id;
    7. //其中getter与setter方法不能省略
    8. public int getAge() {
    9. return age;
    10. }
    11. public void setAge(int age) {
    12. this.age = age;
    13. }
    14. public String getName() {
    15. return name;
    16. }
    17. public void setName(String name) {
    18. this.name = name;
    19. }
    20. public String getId() {
    21. return id;
    22. }
    23. public void setId(String id) {
    24. this.id = id;
    25. }
    26. }

    读取 

    yml的基本读取与properties的@Value注解读取一直,特殊的对象读取也说明,此处不再赘述.

  • 相关阅读:
    可持续发展:制造铝制饮料罐要消耗多少资源?
    ue4文档接口类学习
    【实践篇】redis管道pipeline使用详解
    深入理解比特币原理1----常用术语与概念介绍
    前端常用布局方式大全——细致讲解
    梯度下降法公式推导+实战--以一元、多元线性回归为例-猛男技术控
    【坚持不懈的每日一题——力扣篇】1774. 最接近目标价格的甜点成本(中等)-- dfs / dp
    SpringData MongoDB学习总结
    QT 发布文章遇到问题解决方案
    21天,胖哥亲自带你玩转OAuth2
  • 原文地址:https://blog.csdn.net/weixin_67719939/article/details/132993605