Spring Boot问题记录,希望可以帮到需要的你
Spring Boot Application.yml文件相关问题
application.yml部署方法1
在使用Spring Boot部署的过程中, 使用Spring Boot进行生产环境、开发环境、测试环境的部署的过程中产生可以使用以下的办法解决简单的部署问题.
Spring Boot的配置文件为:
application.yml 或 application.properties
application.yml与application.properties的差距如下
application.yml
*.yml文件以缩紧进行控制
Spring:
profiles:
active: dev
application.properties
properties文件以 ‘=‘ 进行变量的控制
spring.profiles.active=dev
建议使用application.yml文件配置。
现在有 生产环境(prod)、测试环境(test)、开发环境(dev) 三个环境
并且将每个环境通过不同的网络环境进行部署,并设置不同的数据源,如下:
生产环境prod, 部署在云服务器10.10.10.10,数据库也在该台云服务器上
测试环境test, 部署在云服务器10.10.10.20, 数据库也在该台云服务器上
开发环境dev, 部署在云服务器localhost, 数据库也部署在本地
环境 | 生产环境(云服务器) | 测试环境 (云服务器) | 开发环境(本地笔记本) |
---|---|---|---|
ip | 10.10.10.10 | 10.10.10.20 | localhost |
port | 8080 | 8080 | 8080 |
ip | 10.10.10.10:8080 | 10.10.10.20:8080 | localhost:8080 |
数据库 | 10.10.10.10:3306 | 10.10.10.20:3306 | localhost:3306 |
对以上三个环境的配置如下:
分别创建如下文件
application.yml ---主配置文件
开发环境
application-dev.yml ---开发环境配置文件
application-devdruid.yml ---开发环境数据源配置文件
测试环境
application-test.yml ---测试环境配置文件
application-testdruid.yml ---测试环境数据源配置文件
生产环境
application-prod.yml ---生产环境配置文件
application-proddruid.yml ---生产环境数据源配置文件
以上文件均放在配置文件同一目录中,即以上7个文件在同一文件夹内。
文件作用如下:
application.yml文件为Spring Boot的全局通用配置文件,
application-/dev/test/prod.yml文件是针对三个开发环境的个性化配置文件
application-/dev/test/prod+{druid}.yml文件是针对三个开发环境的数据源的个性化配置文件
为何要这样设置文件名字?
这里需要提到,Spring Boot的隐藏机制在Spring Boot中,将application.yml文件作为根配置文件,对于根配置文件可以设置通用的配置,而当需要个性化配置的时候,application.yml文件就显得不足了,这个时候就需要application-{profile}.yml,application为前缀,{profile}为后缀,所以完整的个性化配置文件就是:
application-dev.yml
application-devdruid.yml
如何主动区分开发环境、测试环境生产环境?
SpringBoot会通过自身的机制去匹配 {profile} 并加载带有 profile的配置文件。
在设置了众多数据源以后如何去加载配置文件呢?
# 开发环境
# 在 application.yml文件中使用以下配置将激活开发环境
Spring:
profiles:
active: dev,devdruid # 加载了dev与devdruid配置文件
# 生产环境
# 在 application.yml文件中使用以下配置将激活生产环境
Spring:
profiles:
active: prod,proddruid # 加载了dev与devdruid配置文件
以上代码加载了 application-dev.yml以及 application-devdruid.yml文件,在根配置文件中通过active属性进行选择个性化配置文件, 并通过输入application-{profile}.yml中 {profiles} 的值进行选择文件,需要加载多个配置文件以逗号分隔
这样子做的好处是什么?
通过以上的配置代码,就可以切换开发环境或者生产环境,这样就不需要手动去修改相应的值
这几个文件都是必须的吗?
值的注意的是,只需要根配置文件即可进行正常的运行,个性化配置文件仅仅是针对需要额外的配置的时候才使用
每个文件的应该放些什么内容?
在每个文件中,可以设置不同的数据源,或者logback的路径,或者不同服务器上的端口配置等等例如
# 根配置文件 application.yml
Spring:
profiles:
active: dev|prod
# 开发环境 application-dev.yml
# 生产环境 application-prod.yml
问题5:如何在Spring Boot项目打包的过程中区分开发环境、测试环境、生产环境?
问题8:是否有其他的配置方式?这样的配置方式似乎太麻烦了,每次都要输入一个参数来进行打包或者运行