配置文件在Spring Boot项目中的地位是比较重要,其功能可主要归纳为以下几个:
Spring Boot 项目配置文件的格式有两种,分别为:
1,Properties格式
用法:Properties格式使用键值对的方式进行配置,每个配置项使用key=value
的格式。可以通过.properties
文件扩展名来标识使用此格式的配置文件,例如application.properties
。在文件中,可以配置多个属性,使用#作为注释符号。
优点:Properties格式使用简单的键值对,易于理解和书写。对于简单的配置需求,Properties格式足够满足要求。
缺点:Properties格式缺乏层级结构的表示能力,难以表达复杂配置。并且随着配置项的增多,Properties格式的可读性会变差。
示例:在配置文件中设置端口号和建立数据库连接。
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=secret
2,YAML格式
用法:YAML格式以层级结构的方式进行配置,使用缩进和冒号来表示层级关系。可以通过.yml
或.yaml
文件扩展名来标识使用此格式的配置文件,例如application.yml
。在文件中,可以使用缩进和冒号定义各级配置,注意冒号与值之间存在个空格。
优点:YAML格式支持层级结构,可以更好地表达复杂配置,如嵌套配置、列表、块等。并且该格式采用缩进的语法,易于阅读和维护。
缺点:YAML格式对缩进和冒号的使用有严格的要求,如果没有正确缩进或冒号使用错误可能导致配置解析问题,需要一定的学习成本。
示例:在配置文件中设置端口号和建立数据库连接。
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydatabase
username: root
password: secret
总结:Properties格式适合简单配置和快速编写,而YAML格式则更适合复杂配置和可读性强的情况。选择哪种格式可以根据项目需求和个人偏好来决定。
系统配置项查看网址:Common Application Properties (spring.io)
配置文件格式的特殊说明
1,两种配置文件是可以同时存在的,但是在企业中通常会规定项目使用这其中的一种格式作为项目配置文件的格式。
2,如果一个配置项在两种配置文件中都进行了设置,以 .properties
为后缀的配置文件为主。
3,.properties
配置文件的优先级最高,但加载完.properties
配置文件之后,也会加载.yml
配置文件的配置信息。
在项目中,主动的读取配置文件中的内容,可以使用 @Value
注解来实现,@Value 注解使用"${}"
的格式读取。
示例:读取application.properties
配置文件中设置的端口号
1,application.properties
配置文件中设置的端口号信息:
2,编写读取配置文件在的端口号代码,示例代码:
package com.example.springboot.component;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class ReadProperties {
@Value("${server.port}")
private String port;
@PostConstruct
public void doPostConstruct(){
System.out.println("server.port = " + port);
}
}
代码说明:@Component
注解:在 Spring Boot启动时候将ReadProperties
类注入到框架中,@PostConstruct
注解:类注入到框架中时会执行doPostConstruct
初始化方法,这个时候就能读取到配置信息了。
3,运行编写好的示例代码,查看到如下运行结果:
读取配置文件的多种方式:SpringBoot 有几种读取配置文件的方法?
1,不使用引号(裸值)
用法:在配置文件中,通常不需要使用引号将值括起来。这种情况下,值会被解析为相应的数据类型,如字符串、整数、布尔值等。
使用环境:适用于不包含特殊字符的情况。
myapp.name=My Application
myapp.port=8080
myapp.enabled=true
2,单引号(‘’)
用法:单引号可以用来保留配置值中的空格或特殊字符。其中的值将按照原样进行解析,包括空格。
使用环境:适用于需要保留空格、特殊字符或原始格式的配置值,如文件路径、密码或命令行参数。
myapp.name='My Application'
myapp.description='This is my "awesome" application.'
myapp.author='Traceless'
3,双引号(“”)
用法:双引号可以用于提供字符串类型的配置值。其中的值将进行解析和处理,可以包含占位符或转义字符。
使用环境:适用于需要进行变量替换或使用转义字符的配置值。
myapp.name="My Application"
myapp.description="This is my \"awesome\" application."
myapp.author="Traceless"
总结:具体使用哪种引号取决于要实现的功能和期望的字符串处理方式。例如,如果需要对变量进行替换或特殊字符转义,双引号是更适合的选择。单引号则保持字符串的原样,适用于需要保留特殊字符字面值的情况。。
在实际开发中,一个项目存在多种不同环境的配置文件,例如开发环境配置文件,测试环境配置文件,生产环境配置文件 …
Spring Boot 项目在不同平台上的环境配置规则:
application.propertion
或者 application.yml
。application-xxx.propertion(.yml)
格式。设置不同环境的配置文件示例:现有个项目,项目中存在开发环境,测试环境,生产环境的配置文件,而每个配置文件端口号不同,现在需要进行项目的测试操作,所以我们切换使用测试环境的配置文件。
1,项目主环境和各环境的配置文件配置如下:
2,项目启动检测环境配置是否切换至测试生产环境,查看端口号为8888,说明切换成功。
这就是本期博客的全部内容啦!如果有什么其他的问题无法自己解决,可以在评论区留言哦!
最后,如果你觉得这篇文章写的还不错的话或者有所收获的话,麻烦小伙伴们动动你们的小手,给个三连呗(点赞,评论✍,收藏),多多支持一下!各位的支持是我最大的动力,后期不断更新优质的内容来帮助大家,一起进步。那我们下期见!