SpringBoot02-application配置文件
Spring Boot 的配置文件主要用于配置项目的运行参数和环境变量,常用的有 application.properties
和 application.yml
(或 application.yaml
)两种格式。
一、配置文件的作用
配置文件可以用于配置:
类型 | 举例 |
---|---|
应用基本信息 | 应用名、端口号、环境等 |
数据库 | 数据库连接信息 |
日志 | 日志级别、路径 |
缓存 | Redis、EhCache |
消息队列 | Kafka、RabbitMQ |
安全配置 | 登录认证、权限 |
自定义参数 | 可以被 @Value 或 @ConfigurationProperties 读取 |
二、文件格式
Spring Boot 支持两种配置格式:
配置项的内容一致,只是格式不一样!
2-1. application.properties
示例
# 服务器端口
server.port=8081# 应用名
spring.application.name=myapp# 数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=root
spring.datasource.password=123456# 日志级别
logging.level.com.example.demo=DEBUG
2. application.yml/application.yaml
示例(推荐使用,可读性更强)
server:port: 8081spring:application:name: myappdatasource:url: jdbc:mysql://localhost:3306/testdbusername: rootpassword: 123456logging:level:com.example.demo: DEBUG
三、配置文件的位置(优先级)
Spring Boot 会自动加载以下位置的配置文件,优先级从高到低:
命令行参数(例如
--server.port=8088
)application.properties
或application.yml
(放在src/main/resources
目录下)外部配置(例如通过
-Dspring.config.location=xxx
指定)
四、多环境配置(Profile)
你可以为不同环境配置不同的文件,例如:
application-dev.yml
application-test.yml
application-prod.yml
主配置文件中指定当前环境:
spring:profiles:active: dev
Spring Boot 会自动加载 application-dev.yml
的配置。
五、读取配置的方式
1. 使用 @Value
@Value("${server.port}")
private int port;
2. 使用 @ConfigurationProperties
(适合绑定一组配置)
my:app:name: helloversion: 1.0
@Component
@ConfigurationProperties(prefix = "my.app")
public class AppConfig {private String name;private String version;// getters and setters
}
六、自定义配置和获取
你也可以在配置文件中添加自定义属性,例如:
custom:greeting: Hello, Spring Boot!
【注意】:
1、值前面要有空格!
2、相同层级,左对齐。
6-1、数组或列表(List)的配置
1、YAML 格式中的数组设置
(1)、常用方式:使用 -
符号列出元素
(2)、另一种方式:用逗号分隔字符串(效果同上)
2、Properties 格式中的数组设置
用逗号分隔值(最常见方式)
my.servers=192.168.0.1,192.168.0.2,192.168.0.3
6-2、配置信息的获取
1、通过 @Value("${键名}")获取:
【缺点】:
若是成员变量很多,每个都要加@Value会很麻烦。
2、@ConfigurationProperties(prefix = "前缀")
读取
【注意】:
application.yml / application.properties文件中的信息被修改了,并不需要重新打包、部署项目代码!
七、总结
功能 | 推荐方式 |
---|---|
单个配置读取 | @Value |
一组配置读取 | @ConfigurationProperties |
多环境切换 | 使用 spring.profiles.active |
可读性 | 建议使用 application.yml |
八、springboot整合mybatis
8-1、回顾spring整合mybatis
8-2、springboot整合mybatis
1、添加mybatis的起步依赖 + 数据库驱动依赖:
添加了mybatis的起步依赖之后,mybatis以及相关的bean会被自动添加进项目中。
项目中用到了这个父类:
这就意味着:你自动继承了 Spring Boot 官方提供的一个 版本管理中心,里面已经定义好了大量常用依赖的版本。(具体定义了哪些依赖,可以通过git上的查询到!)
Spring Boot 使用的是 Maven 的 dependencyManagement 机制,这机制允许你:
不用显式写
<version>
,只写<groupId>
和<artifactId>
,Maven 会自动使用父类定义的版本。
mysql-connector-j
可以不写版本,因为 Spring Boot 官方已经在 spring-boot-dependencies
中管理了这个依赖的版本,你可以省略 version
,Maven 会自动用 Spring Boot 推荐的版本(比如 8.0.33
)。
mybatis-spring-boot-starter
必须手动写版本?
这就不一定了。
如果你用的是 Spring Boot 2.x,通常不会自动管理
mybatis-spring-boot-starter
。但 Spring Boot 3.x(如你写的 3.1.2)是有管理的!
2、在配置文件 application.yml中编写数据库相关信息。
8-3、编写业务代码
1、编写pojo类:
2、编写mapper接口
3、编写service接口是实现类
4、编写controller类