Springboot与Maven多环境配置的解决方案

网友投稿 560 2023-01-04

Springboot与Maven多环境配置的解决方案

Springboot与Maven多环境配置的解决方案

Profile用法

我们在application.yml中为jdbc.username赋予一个值,这个值为一个变量

jdbc:

username: ${jdbc.username}

Maven中的profiles可以设置多个环境,当我们选择a环境后,内的值将替换上述配置文件中的变量

http://a

root

true

我们查看编译后的application.yml文件,果然变量已经被赋值。我们猜想是否可以利用Profile的这一特性设置开发、测试、生产环境,选择不同环境时使用不同变量,配合Resources和Filter来指定打包内容以及替换变量。

jdbc:

username: root

resources

用来操作编译文件

filters

过滤器,设置过滤器的资源将会对同名变量进行赋值(被赋值的资源文件需要设置filtering为true)

多环境配置解决方案

网上大多数都是分为application-dev.xml、application-test.xml、application-prod.xml三个文件,可是我们在真实项目开发中,将会用到很多各式各样的文件(例如log4j的配置文件),它们在不同环境中应该也是不同的配置,不能在测试和生产环境使用同一个配置文件。所以我们将分为三个文件夹分别代表开发环境、测试环境、生产环境,他们里面的配置文件种类一致但是内容不一样。选择完当前环境后,打的jar包只包含当前环境文件夹下的配置文件。

├─main

│ ├─java

│ │ └─......

│ └─resources

│ ├─dev

│ │ └─config

│ │ │ └─mq.yml

│ │ │ └─redis.yml

│ │ └─application-dev.yml

│ ├─prod

│ │ └─config

│ │ │ └─mq.yml

│ │ │ └─redis.yml

│ │ └─application-prod.yml

│ └─test

│ │ └─config

│ │ │ └─mq.yml

│ │ │ └─redis.yml

│ │ └─application-test.yml

│ └─application.yml

│ └─a.xml

└─test

└─java

└─......

dev下的config下的mq.yml

mq: mq-dev

dev下的config下的redis.yml

redis: redis-dev

dev下的application-dev.yml

profiles.active:

dev

port: dev-port

application.yml

spring:

profiles:

active: ${profiles.active}

port: ${port}

查看编译后的结果

其中application.yml中变量已经被替换为

spring:

profiles:

active: dev

port: dev-port

完整的pom.xml

org.springframework.boot

org.apache.maven.plugins

maven-resources-plugin

3.1.0

true

src/main/resources

application.yml

true

src/main/resources/${profiles.active}

**/*.yml

false

src/main/resources

application.yml

true

src/main/resources

**/*.properties

**/*.xml

false

src/main/resources/${profiles.active}

http:// **/*.yml

false

src/main/resources/${profiles.active}/application-${profiles.active}.yml

dev

dev

true

test

test

prod

prod

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:自媒体app运营模式(自媒体平台运营机制)
下一篇:手持智能终端(手持智能终端系统)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~