Springboot学习:提取公共模块配置文件
记录一次公共配置的提取,后续有更好的实现再优化,欢迎大家一起讨论指正。
springboot开发过程中,有一部分配置可能会重复出现在各个子模块中,例如注册中心、redis、数据库连接池等配置,那么怎么样才能将重复的部分提取公共配置呢?并且引用公共配置后,还可以实现每个微服务的个性化配置?下面是我的实现方式。
1、提取公共模块,每个微服务中进行引入该模块,在该模块下,新增配置文件
2、引入公共模块后,微服务自己的配置中新增以下配置:
spring:
profiles:
include: '@commonProfileActive@,@profileActive@' #dev放在common-dev后面,如果common-dev和dev中存在相同的配置,dev会覆盖common-dev
其中commonProfileActive和profileActive是配置在父工程下的pom.xml文件中
<!-- profiles -->
<profiles>
<profile>
<id>dev</id>
<!-- 激活配置 -->
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<profileActive>dev</profileActive>
<commonProfileActive>common-dev</commonProfileActive>
</properties>
<dependencies>
<!--支持热启动jar包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</profile>
<profile>
<id>test</id>
<!-- 激活配置 -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profileActive>test</profileActive>
<commonProfileActive>common-test</commonProfileActive>
</properties>
</profile>
<profile>
<id>prod</id>
<!-- 激活配置 -->
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<profileActive>prod</profileActive>
<commonProfileActive>common-prod</commonProfileActive>
</properties>
</profile>
</profiles>
```
这样,在打包时,只需要指定相关环境就可以了