【Java Spring】SpringBoot 配置文件

1、Spring Boot配置文件的作用

配置文件的基本作用:

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

2、Spring Boot配置文件的格式

Spring Boot配置文件主要分以下两种格式:

  • application.properties
  • application.yml

Spring Boot 中这两种格式的配置文件的命名方式必须以 application 开头, 否则配置就不会生效 ,创建Spring Boot项目后会自动在src.main.resources文件夹中创建一个名为application.properties的默认配置文件

2.1 properties配置文件

2.1.1 properties配置文件基本语法

properties 配置文件语法非常简单,其是以键值对的格式进行配置的, "key" 和 "value" 通过 "=" 来连接

properties 复制代码
# 设置端口号
server.port=8081
#设置数据库的连接信息
spring.datasource.url=clx:mysql://127.0.0.1:3306/book?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
2.1.2 读取properties配置文件

yml使用进阶

yml 配置不同数据类型

yml 复制代码
 # 字符串
string.value: true
# 布尔值, true 或 false
boolean.value1: true
boolean.value2: false

# 整数
int.value1: 10
int.value2: 0b1010_0100 # 二进制
# 浮点数
float.value1: 3.1415926
float.value2: 314159e-5 # 科学计数法

# Null ~代表null
null.value: ~

注意事项:

如果值为双引号引起的字符串,内部若存在转义字符会被转义,其余直接输出

复制代码
myString1: 你好,世界\n
myString2: '你好,世界\n'
myString3: "你好,世界\n" # 双引号会转义

yml配置对象

yml 复制代码
# 1、普通写法
student1:
  id: 1
  name: Java
  age: 18

# 2、行内写法
student2: {id: 2, name: C++, age: 18}

yml配置的对象不能使用@Value来读取,需要使用@ConfigurationProperties来读取,具体实现如下

java 复制代码
@Component
@ConfigurationProperties("student1")   // 1、使用@ConfigurationProperties注解
@Data								   // 2、实体类属性名要和配置中的key一致,并必须要提供setter和getter方法
public class Student {
    private int id;
    private String name;
    private int age;
}

yml 配置集合

配置文件也可以配置list集合,如下所示

yml 复制代码
# 普通写法
dbtypes:
 	 name:
 	   - mysql
 	   - sqlserver
 	   - db2
 # 行内写法
 dbtypes: {name: [mysql, sqlserver, db2]}

集合的读取和对象一样,也是使用@ConfigurationProperties来读取的,具体实现如下:

java 复制代码
@Component
@ConfigurationProperties("dbtypes")
@Data
public class ListConfig {
		private List<String> name;
}

Properties vs Yml

  • Properties 是以key=value的形式配置键值对的配置文件,而yml使用的是类似json格式的树形配置方式
  • properties为早期且默认的文件格式,存在一定的冗余数据,yml可以很好解决数据冗余问题
  • yml通用型更好,支持更多的语言,如:Java、Go、Python等,如果是云服务器开发,可以使用一份配置文件作为Java和Go的共同配置文件
  • yml支持更多的数据类型

Spring Boot 项目使用不同环境的配置文件

application.yml / application.properties 是主配置文件,可以通过设置spring.profiles.active来指定哪个子配置文件生效,active的值对应子配置文件application-前缀后,.yml / .properties 后缀前的字符串

相关推荐
带刺的坐椅1 分钟前
SolonCode v0.0.20 发布 - 编程智能体(新增子代理和浏览器能力)
java·ai·agent·solon·solon-ai·claude-code·openclaw
会员源码网1 小时前
数字格式化陷阱:如何优雅处理 NumberFormatException
java
孔明click332 小时前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·sa-token·开源·springboot·登录·权限认证
程序猿阿越2 小时前
Kafka4源码(二)创建Topic
java·后端·源码阅读
悟空码字2 小时前
Spring Boot 整合 MongoDB 最佳实践:CRUD、分页、事务、索引全覆盖
java·spring boot·后端
省长2 小时前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·后端·开源
NE_STOP3 小时前
MyBatis-动态sql与高级映射
java
后端AI实验室3 小时前
我把同一个需求分别交给初级程序员、高级程序员和AI,结果让我沉默了
java·ai
sTone873753 小时前
web后端开发概念: VO 和 PO
java·后端·架构
SimonKing4 小时前
JetBrains+Qoder变身Agentic 编码平台,媲美Cursor、Trae等AI编程平台
java·后端·程序员