需求:
项目有开发环境,测试环境,正式环境,不同的环境,需要不同的配置文件
问题:
如果每次都更改同一个配置文件的内容,需要更改很多配置,比如各种端口,IP,数据库等等,非常麻烦
解决方案:
可以写多个配置文件,通过spring配置激活属性,激活不同的配置文件,这样的话,每次只需要更改一个文件就可以了。
比如我们可以创建4个配置文件。
application.yml(这个必须有,spring启动的时候会读取这个文件,我们配置激活文件的配置,就在这个文件中)
application-dev.yml(开发环境,写法必须是这种格式 application-名字)
application-test.yml(测试环境,写法必须是这种格式 application-名字)
application-prod.yml(生产环境,写法必须是这种格式 application-名字)
接下来看我们的配置文件:
application.yml :总配置文件
spring:
profiles:
active: dev #dev指的是激活application-dev.yml配置文件,test指的是激活application-test.yml配置文件,prod指的是激活application-prod.yml配置文件,我们每次需要更改环境的时候,只需要更改这个就可以了
application-dev.yml:开发环境配置文件
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
port: 19080
servlet:
# 应用的访问路径
context-path: /api
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# 连接数满后的排队数,默认为100
accept-count: 1000
threads:
# tomcat最大线程数,默认为200
max: 800
# Tomcat启动初始化的线程数,默认值10
min-spare: 100
# Spring配置
spring:
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
########。。。。。。等等等等,根据自己的实际需要进行添加
application-test.yml:测试环境配置文件
# 测试环境配置
server:
# 服务器的HTTP端口,默认为8080
port: 29080
servlet:
# 应用的访问路径
context-path: /api
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# 连接数满后的排队数,默认为100
accept-count: 1000
threads:
# tomcat最大线程数,默认为200
max: 800
# Tomcat启动初始化的线程数,默认值10
min-spare: 100
# Spring配置
spring:
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
########。。。。。。等等等等,根据自己的实际需要进行添加
application-prod.yml:生产环境配置文件
# 生产环境配置
server:
# 服务器的HTTP端口,默认为8080
port: 39080
servlet:
# 应用的访问路径
context-path: /api
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# 连接数满后的排队数,默认为100
accept-count: 1000
threads:
# tomcat最大线程数,默认为200
max: 800
# Tomcat启动初始化的线程数,默认值10
min-spare: 100
# Spring配置
spring:
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
########。。。。。。等等等等,根据自己的实际需要进行添加
特别注意!!!
在子配置文件(application-dev.yml,application-test.yml,application-prod.yml)中,不允许再有激活其它文件的配置!!!
比如在application-dev.yml再配置一个这样的激活配置,这是绝对不允许的,是会报错的:
spring:
profiles:
active: druid
在子配置文件中再激活其它配置文件,会报错!会报错!会报错!!!
这种配置,只允许一层,不允许多层!!!