Spring
SpringBoot
Spring和SpringBoot区别?
配置文件
application.yml 基础配置
默认的主配置文件,Spring Boot 应用会自动加载该文件。存放应用程序的主要配置。是 Spring Boot 中用于配置应用程序属性的主要配置文件之一。这个文件 通常用于配置应用程序的一般性属性,包括数据库连接、日志级别、端口 号等。下面是一些常见的在 application.yml 中配置的示例:
# 服务器端口
server:
port: 8080
# 数据库连接配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydatabase
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
# 日志级别
logging:
level:
root: INFO
com.example.mypackage: DEBUG
# 应用程序自定义属性
myapp:
name: My Spring Boot App
version: 1.0
上述示例展示了一些常用的配置项,但根据应用程序的需求,你可以在 application.yml 中配置各种属性。Spring Boot 非常灵活,可以根据属性的前缀识别属性,并将其绑定到对应的 Java 对象上,以方便在代码中使用。
需要注意的是,application.yml 文件采用 YAML(YAML Ain’t Markup Language)语法,它使用缩进和冒号来表示层次关系。因此,正确的缩进对于保持文件的结构是很重要的。
application-{profile}.properties/application-{profile}.yml:
可以根据不同的环境配置不同的属性文件,{profile} 表示环境名称。 例如,application-dev.properties 用于开发环境,application-prod.properties用于生产环境。
bootstrap.properties/bootstrap.yml
用于 Spring Cloud 应用,是 Spring Cloud Config 服务的默认配置文件。 存放一些启动时需要优先加载的配置,比如连接到 Config Server 的配置。
application-{label}.properties/application-{label}.yml
用于 Git 和配置服务器的外部化配置,{label} 表示 Git 的标签。 例如,application-v1.properties 用于版本 1。
这些文件命名规范允许你根据不同的环境、配置标签或者配置文件类型组织和管理你的配置信息。Spring Boot 会根据上述规则自动加载相应的配置文件。
多配置文件,怎么知道用哪个?
Spring Boot 在启动时会加载默认的主配置文件,即 application.yml 或 application.properties。如果有不同环境的配置文件,如 application-test.yml 或 application-dev.yml,Spring Boot 会根据当前激活的环境来选择加载对应的配置文件。
配置文件设置 spring.profiles.active 指定激活环境
你可以通过在 application.yml 或 application.properties 中设置 spring.profiles.active 属性来指定激活的环境。例如:
spring:
profiles:
active: dev
上述配置表示激活 dev 环境,因此 Spring Boot 会加载 application-dev.yml 文件中的配置。
如果没有设置 spring.profiles.active 属性,Spring Boot 将默认使用主配置文件的配置。
命令行参数指定环境
除了通过属性文件来设置激活的环境外,你还可以通过命令行参数、系统属性、环境变量等方式来指定激活的环境。例如,通过命令行参数启动时指定环境:
java -jar your-application.jar --spring.profiles.active=dev
这样就会加载 application-dev.yml 的配置。
tips:Springboot中配置文件的加载顺序
application.yml、application.properties和bootStrap.yml加载顺序
以jar包发布springboot项目时 默认会先使用jar包根目录下的application.properties来作为项目配置文件。
如果在不同的目录中存在多个配置文件,它的读取顺序是:
1、config/application.properties(项目根目录中config目录下) 2、config/application.yml 3、application.properties(项目根目录下) 4、application.yml 5、resources/config/application.properties(项目resources目录中config目录下) 6、resources/config/application.yml 7、resources/application.properties(项目的resources目录下) 8、resources/application.yml