【Spring Boot】Spring Boot配置文件详情

这篇具有很好参考价值的文章主要介绍了【Spring Boot】Spring Boot配置文件详情。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

 Spring Boot是一个开源的Java框架,用于快速构建应用程序和微服务。它基于Spring Framework,通过自动化配置和约定优于配置的方式,使开发人员可以更快地启动和运行应用程序。Spring Boot提供了许多开箱即用的功能和插件,包括嵌入式Web服务器、安全性、数据访问、缓存、测试和监控等,极大地简化了开发人员的工作。同时,Spring Boot还提供了可扩展性和可定制性,让开发人员可以根据特定的需求完全自定义应用程序。本文就 SpringBoot 项目中配置文件的作用以及两种不同形式的配置文件的使用分别进行阐述。
【Spring Boot】Spring Boot配置文件详情,JavaEE编程之路,spring boot,java,后端



1 配置文件

配置文件是一种存储应用程序配置信息的文件,它包含了应用程序所需要的各种参数、选项和设置。
【Spring Boot】Spring Boot配置文件详情,JavaEE编程之路,spring boot,java,后端

2 为什么需要配置文件?

Spring Boot 配置文件是一个特殊的文件,用来配置 Spring Boot 应用程序的行为。在 Spring Boot 应用程序中,可以使用多种配置文件格式,包括 properties、YAML、XML 等。配置文件通常包含应用程序的参数、数据库连接等信息,可以让应用程序在不同的环境中运行,例如开发、测试、生产等环境。

项目中重要的信息都是在配置文件中去设置的,例如:

  • 数据库的连接信息,包括用户名和密码等;
  • 项目的启动端口;
  • 第三方系统的调用密钥等信息;
  • 用于发现和定位问题的普通日志和异常日志等。

配置文件的作用在于:

  1. 灵活性:通过配置文件,用户可以根据自己的需求来修改应用程序的参数,而不必修改应用程序的代码。

  2. 维护性:将应用程序的参数存储在配置文件中,可以使得维护者更容易理解应用程序的功能和行为。

  3. 共享性:配置文件可以共享给多个用户或多个应用程序使用,从而降低了编写重复代码的工作量。

  4. 安全性:一些敏感信息如数据库连接字符串、密码等可以单独存储在配置文件中,可以防止这些信息被恶意利用或修改。

Spring Boot常见的配置文件有两种:.properties or .yml, 理论上来说,允许两种格式的配置文件可以同时存在。但是,在实际项目开发中,为了可以更好的维护并降低故障发生的概率,我们通常只使用其中一种格式的配置文件。需要特别注意的是,properties 格式的配置的优先级大于 yml 格式的配置文件。
【Spring Boot】Spring Boot配置文件详情,JavaEE编程之路,spring boot,java,后端

3 properties 格式的配置文件

properties 的语法是用键值对的形式组织的,key 与 value 之间使用 “=” 连接,并不需要多余的空格或者缩进,示例代码如下:

# 端口配置
server.port=8888

# 数据库连接配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/databaseName?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

# 自定义配置项
myTestConfigName=Huang

如何读取配置文件?
若想要主动读取配置文件的信息,可以使用@Value 注解,该注解使用${} 格式读取,以下代码演示如何读取上述代码中的自定义配置项 myConfigName=Huang

    @Value("${myTestConfigName}")  // 获取自定义配置项
    private String myTestConfigName;

    @PostConstruct
    public void postConstruct() {
        System.out.println("myTestConfigName: " + myTestConfigName);
    }

【Spring Boot】Spring Boot配置文件详情,JavaEE编程之路,spring boot,java,后端

对于初学者来说,properties格式的配置文件由于不需要各种缩进和空格的格式控制,因此,可以避免很多错误。但是,properties格式对中文支持并不好,会出现乱码的情况。其次,由于其是key=value形式存储的,会导致代码有很多冗余信息:
【Spring Boot】Spring Boot配置文件详情,JavaEE编程之路,spring boot,java,后端
要想解决上述问题,可以使用 yml 格式的配置文件解决~

4 yml 格式的配置文件

YAML(全称 Yet Another Markup Language, 另一种标记语言)是一种层级的、非常易读的标记语言。经常用于不同编程语言之间的数据传输。

  • yml 是⼀个可读性⾼,写法简单、易于理解,它的语法和 JSON 语⾔类似。
  • yml ⽀持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。
  • yml ⽀持更多的编程语⾔,它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、Ruby、JavaScript、Perl 中。

4.1 yml 基本语法

yml 是树形结构的配置⽂件,它的基础语法是“key: value”,注意 key 和 value 之间使⽤英⽂冒号加空格的⽅式组成的,其中的空格不可省略。

使用 yml 格式配置端口号和数据库连接信息的代码如下:

# 优先级 properties > yml 格式, 但是 yml 格式能够解决中文乱码问题, 并且能够适配多种编程语言
server:
  port: 8080

# 数据库连接配置
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/databaseName?characterEncoding=utf8
    username: root
    password: root

相较 properties,代码冗余度降低~

4.2 yml 配置不同类型及null

# 字符串
string.value: Hello

# 布尔值,truefalse
boolean.value1: true
boolean.value2: false

# 整数
int.value1: 77
int.value2: 0b1010_0111_0100_1010_1110 # ⼆进制

# 浮点数
float.value1: 3.14159
float.value2: 314159e-5 # 科学计数法

# Null~代表null
null.value: ~

需要特别注意的是,字符串类型是否带有引号,读取出来是有区别的~

# 字符串
string:
  myString1: 你好, \n世界
  myString2: '你好, \n世界'
  myString3: "你好, \n世界"

读取配置信息的代码如下:

    @Value("${string.myString1}")
    private String myString01;

    @Value("${string.myString2}")
    private String myString02;

    @Value("${string.myString3}")
    private String myString03;

    @PostConstruct
    public void postConstruct() {
        System.out.println("string.myString1: " + myString01 + "\n" + 
                "string.myString2: " + myString02 + "\n" +
                "string.myString3: " + myString03 + "\n");
    }

【Spring Boot】Spring Boot配置文件详情,JavaEE编程之路,spring boot,java,后端
可见,只有带有双引号的字符串,转义字符才能被正常解析。对于无引号和单引号的情况,转义字符会原封不动的打印出来~

4.3 使用 yml 配置对象

在 yml 配置对象示例如下:

# 自定义对象
student:
  id: 1
  name: "黄小黄"
  age: 20

也可以采用行内的写法,作用与上述代码一致:

student: {id: 1,name: "黄小黄",age: 20}

如果想要主动读取配置对象的信息,则不能使用 @Value 注解,可以采用 @ConfigurationProperties 来读取,具体实现如下:

@Component
@ConfigurationProperties("student")
@Data
public class Student {
    private int id;
    private String name;
    private int age;
}

在以上代码中,getter、setter以及toString方法均通过lombok实现。需要注意的是@ConfigurationProperties注解中的内容,需要与配置文件中对象的key相同。

调用类的代码如下:

    @Autowired
    private Student student;

    @PostConstruct
    public void postConstruct() {
        System.out.println("student: " + student);
    }

【Spring Boot】Spring Boot配置文件详情,JavaEE编程之路,spring boot,java,后端

4.4 使用 yml 配置集合

同样地,使用 yml 配置 list 集合也有两种方式:

dbtypes:
  name:
    - mysql
    - sqlserver
    - db2

行内写法如下:

dbtypes: {name: [mysql,sqlserver,db2]}

与配置集合相同,也可以采用 @ConfigurationProperties 来读取,具体实现如下:

@Component
@ConfigurationProperties("dbtypes")
@Data
public class ListConfig {

    private List<String> name;
}

调用类的代码如下:

@Component
public class ReadListYml {

    @Autowired
    private ListConfig listConfig;

    @PostConstruct
    public void postConstruct() {
        System.out.println(listConfig.getName());
    }
}

【Spring Boot】Spring Boot配置文件详情,JavaEE编程之路,spring boot,java,后端

更多系统配置项,请查阅官网:https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties


5 Spring Boot读取指定的配置文件

SpringBoot可以读取多个配置文件,其中默认的是application.properties或application.yml。但有时候我们需要读取指定的配置文件,可以通过以下步骤实现:

  1. 创建新的配置文件,比如application-dev.properties或application-dev.yml,可以根据需要命名。

  2. 在src/main/resources目录下创建一个名为config的文件夹。

  3. 将新的配置文件放在config文件夹中。

  4. 在application.properties或application.yml中添加如下配置:

spring.profiles.active=dev

其中dev可以替换成新配置文件的名称(不带扩展名),这样SpringBoot就会加载config文件夹下对应的配置文件。

  1. 在Java代码中可以通过@Value注解获取新配置文件中的属性值,例如:
@Value("${my.property}")
private String myProperty;

其中my.property是新配置文件中的属性名。


写在最后

本文被 JavaEE编程之路 收录点击订阅专栏 , 持续更新中。
 以上便是本文的全部内容啦!创作不易,如果你有任何问题,欢迎私信,感谢您的支持!

【Spring Boot】Spring Boot配置文件详情,JavaEE编程之路,spring boot,java,后端文章来源地址https://www.toymoban.com/news/detail-519617.html

到了这里,关于【Spring Boot】Spring Boot配置文件详情的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • javaee spring配置文件bean标签详解

    bean标签中添加scope属性,设置bean对应对象生成规则. scope = “singleton” 单例,默认值,适用于实际开发中的绝大部分情况. scope=“prototype” 多例,适用于struts2中的action配置 注意: 只对单例有效,设置scope=\\\"singleton\\\"时测试 延时创建属性. lazy-init=“false” 默认值,不延迟创建,即在启动时

    2024年02月11日
    浏览(43)
  • 【Spring Boot】Spring Boot日志详情:基于lombok的日志输出

    日志文件是一种记录计算机系统或应用程序运行状态和活动的文件。日志文件可以包含各种重要信息,如错误报告、警告、事件、用户活动等。日志文件通常用于故障排除、性能优化、安全审计和法律合规等方面。日志文件可以在本地存储,也可以通过网络传输到远程服务器

    2024年02月12日
    浏览(29)
  • Spring —— Spring Boot 配置文件

    JavaEE传送门 JavaEE Spring —— Bean 作用域和生命周期 Spring —— Spring Boot 创建和使用 如果没有配置信息, Spring Boot 项目就不能连接和此操作数据库, 甚至是不能保存可以用于排查问题的关键日志, 配置文件的作用是非常重要的. 系统使用的配置文件 (系统配置文件), 如端口号的配

    2023年04月09日
    浏览(30)
  • 【Spring Boot学习一】创建项目 && Spring Boot的配置文件

    目录 一、安装插件 二、创建Spring Boot项目 1、创建项目 1.1 使用IDEA创建  1.2 网页版本创建 2、项目目录介绍与运行 三、Sping Boot的配置文件(重点) 🌷1、.properties配置文件 (1)基础语法:Key = value (2)读取配置⽂件中的内容,@Value 注解使⽤“${}”的格式读取; 🌷2、.y

    2024年02月16日
    浏览(29)
  • Spring Boot配置文件

    日升时奋斗,日落时自省  目录 1、配置文件作用 2、配置文件格式 2.1、使用注意 3、properties配置文件 3.1、注释中文问题 3.2、properties语法格式 3.3、读取配置文件 3.3.1、Value读取 3.3.2、PropertySource读取 3.3.3、原生方式读取配置文件 3.4、properties缺点分析 4、yml配置文件 4.1、优点

    2024年02月01日
    浏览(26)
  • 【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理

    💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理 🎉欢迎大家点赞👍评论📝收藏⭐文章 配置文件主要是为了解决硬编码带来的问题,把可能会发生改变的信息,放在⼀个集中的地方,当我们启 动某个程序时,应用程

    2024年04月23日
    浏览(29)
  • Spring Boot读取配置文件

    Spring Boot 是一种用于快速构建基于Spring的应用程序的框架,它提供了很多便利的功能和约定,使开发者可以快速搭建、配置和部署应用程序。在Spring Boot中,读取配置文件是一个非常常见的任务,本文将介绍如何在Spring Boot应用程序中读取配置文件,并使用读取到的配置信息。

    2024年02月07日
    浏览(32)
  • Spring Boot的配置文件

    Spring Boot中的配置文件有两种:properties格式和yml格式 一、propertise格式 propertise格式是Springboot默认的配置文件的格式,它才有键值对key=value的方式存储配置信息,有系统key值和自定义key值两类。 系统key值就是Spring boot约定的一些key值,通过设置这些key对应的value值可以配置对应

    2024年02月09日
    浏览(37)
  • Spring Boot 配置文件和日志

    目录 配置文件格式 properties配置文件说明 1.properties基本语法 2.读取配置文件 3.properties缺点 yml配置文件说明 1.yml基本语法 2.配置不同数据类型 3.字符串特殊情况 4.配置对象 properties和yml对比 日志 日志的使用 日志级别 日志持久化 Lombok Lombok原理解释 Spring中配置文件有很重要的

    2024年01月19日
    浏览(45)
  • Spring Boot 系列2 -- 配置文件

    目录 1. 配置文件的作用 2. 配置文件的格式 3. properties 配置文件说明 3.1 properties 基本语法 3.2 读取配置文件 3.3 properties 缺点 4.yml 配置文件说明 4.1 yml 基本语法 4.2 yml 使用进阶 4.2.1 yml 配置不同数据类型及 null 4.2.2 yml 配置读取 4.2.3 注意事项:value 值加单双引号 4.2.4 配置对象

    2024年02月15日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包