欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > SpringBoot的配置(配置文件、加载顺序、配置原理)

SpringBoot的配置(配置文件、加载顺序、配置原理)

2025/2/4 10:56:32 来源:https://blog.csdn.net/NiNg_1_234/article/details/145417813  浏览:    关键词:SpringBoot的配置(配置文件、加载顺序、配置原理)

文章目录

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

SpringBoot的配置(配置文件、加载顺序、配置原理)

在这里插入图片描述

一、引言

Spring Boot的配置机制是其核心功能之一,它通过灵活的配置文件、明确的加载顺序以及强大的配置原理,极大地简化了Spring应用的开发过程。本文将详细介绍Spring Boot的配置文件、加载顺序以及配置原理,并通过代码示例帮助读者更好地理解和应用这些知识。

二、配置文件

1、配置文件的类型

Spring Boot支持两种主要的配置文件格式:application.propertiesapplication.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/testusername: rootpassword: 123456

2、多环境配置

Spring Boot支持多环境配置,可以通过spring.profiles.active属性激活特定的环境配置。例如:

properties复制

# application.properties
spring.profiles.active=dev

然后可以创建application-dev.propertiesapplication-dev.yml文件来定义开发环境的配置。

三、加载顺序

Spring Boot的配置加载顺序决定了最终生效的配置:

  1. 默认配置:Spring Boot框架内部的默认配置,例如Tomcat的默认端口8080。
  2. classpath根目录下的配置文件application.propertiesapplication.yml。如果两个文件都存在,application.yml中的配置会覆盖application.properties中的配置。
  3. 命令行参数:通过命令行参数传递的配置,例如--server.port=8083
  4. 环境变量:通过环境变量设置的配置,例如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: 1name: zhangsanage: 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 {@Autowiredprivate Student student;@RequestMapping("/readStudent")public String readStudent() {return student.toString();}
}

访问http://localhost:8080/readStudent,将返回学生的信息。

六、总结

Spring Boot的配置机制通过灵活的配置文件、明确的加载顺序和强大的配置原理,极大地简化了Spring应用的开发过程。通过application.propertiesapplication.yml文件,开发者可以轻松地管理应用的配置,并通过@ConfigurationProperties注解将配置项绑定到Java对象中。同时,了解配置的加载顺序和原理有助于更好地使用Spring Boot的自动配置功能。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • Spring Boot 配置加载顺序:揭开神秘面纱,掌握配置精髓
  • Spring Boot 自动配置机制:从原理到自定义

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com