文章目录
- SpringBoot的配置(配置文件、加载顺序、配置原理)
- 一、引言
- 二、配置文件
- 1、配置文件的类型
- 1.1、配置文件的使用
- 2、多环境配置
- 三、加载顺序
- 四、配置原理
- 五、使用示例
- 1、配置文件
- 2、配置类
- 3、控制器
- 六、总结
SpringBoot的配置(配置文件、加载顺序、配置原理)

一、引言
Spring Boot的配置机制是其核心功能之一,它通过灵活的配置文件、明确的加载顺序以及强大的配置原理,极大地简化了Spring应用的开发过程。本文将详细介绍Spring Boot的配置文件、加载顺序以及配置原理,并通过代码示例帮助读者更好地理解和应用这些知识。
二、配置文件
1、配置文件的类型
Spring Boot支持两种主要的配置文件格式:application.properties 和 application.yml。这两种文件格式各有特点:
- application.properties:基于键值对的形式,适合简单的配置项。
- application.yml:基于YAML格式,支持嵌套结构,适合复杂的配置。
1.1、配置文件的使用
配置文件通常放在项目的src/main/resources目录下。例如,以下是一个application.properties文件的示例:
properties复制
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
对于application.yml文件,可以使用嵌套结构来组织配置:
yaml复制
server:
port: 8082
spring:
datasource:
url: jdbc:mysql://localhost:3306/test
username: root
password: 123456
2、多环境配置
Spring Boot支持多环境配置,可以通过spring.profiles.active属性激活特定的环境配置。例如:
properties复制
# application.properties
spring.profiles.active=dev
然后可以创建application-dev.properties或application-dev.yml文件来定义开发环境的配置。
三、加载顺序
Spring Boot的配置加载顺序决定了最终生效的配置:
- 默认配置:Spring Boot框架内部的默认配置,例如Tomcat的默认端口8080。
- classpath根目录下的配置文件:
application.properties和application.yml。如果两个文件都存在,application.yml中的配置会覆盖application.properties中的配置。 - 命令行参数:通过命令行参数传递的配置,例如
--server.port=8083。 - 环境变量:通过环境变量设置的配置,例如
SERVER_PORT=8084。
四、配置原理
Spring Boot的配置原理主要依赖于@EnableAutoConfiguration注解和spring.factories文件:
- @EnableAutoConfiguration:该注解会扫描
spring.factories文件中列出的自动配置类,并根据条件判断是否加载这些类。 - spring.factories:该文件位于每个依赖包的
classpath下,列出了当前包所提供的自动配置类。例如:
properties复制
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
五、使用示例
以下是一个简单的示例,展示如何通过@ConfigurationProperties注解读取配置文件中的内容:
1、配置文件
yaml复制
student:
id: 1
name: zhangsan
age: 18
2、配置类
java复制
package com.example.demo.model;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "student")
@Data
public class Student {
private Integer id;
private String name;
private Integer age;
}
3、控制器
java复制
package com.example.demo.controller;
import com.example.demo.model.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class StudentController {
@Autowired
private Student student;
@RequestMapping("/readStudent")
public String readStudent() {
return student.toString();
}
}
访问http://localhost:8080/readStudent,将返回学生的信息。
六、总结
Spring Boot的配置机制通过灵活的配置文件、明确的加载顺序和强大的配置原理,极大地简化了Spring应用的开发过程。通过application.properties或application.yml文件,开发者可以轻松地管理应用的配置,并通过@ConfigurationProperties注解将配置项绑定到Java对象中。同时,了解配置的加载顺序和原理有助于更好地使用Spring Boot的自动配置功能。
版权声明:本博客内容为原创,转载请保留原文链接及作者信息。
参考文章:
- Spring Boot 配置加载顺序:揭开神秘面纱,掌握配置精髓
- Spring Boot 自动配置机制:从原理到自定义






![[c语言日寄]C语言类型转换规则详解](https://i-blog.csdnimg.cn/direct/556c5a2c798045c6aeacdb24ace3e13e.gif#pic_center)












![[免费]微信小程序智能商城系统(uniapp+Springboot后端+vue管理端)【论文+源码+SQL脚本】](https://i-blog.csdnimg.cn/direct/6e930f3dde3c4f2bb9cf4501c8642e1c.jpeg)