SmartAdmin 是由【1024创新实验室】使用SpringBoot2 和 Vue3 Setup 语法糖、 组合式Composition Api (同时支持JavaScript和TypeScript双版本) ,开发出的一套简洁、易用的中后台解决方案!我们开源一套漂亮的代码和一套整洁的代码规范,让大家在这浮躁的代码世界里感受到一股把代码写好的清流!减少加班,快乐工作,热爱代码,更热爱生活!
https://smartadmin.1024lab.net/
https://github.com/1024-lab/smart-admin
一、Maven配置里使用SpringBoot配置里的属性
<resource>
<directory>src/main/resources/${profiles.active}</directory>
<filtering>true</filtering>
<includes>
<include>*.properties</include>
<include>*.xml</include>
</includes>
</resource>
-
maven里的
<filtering>true</filtering>
-
Spring EL表达式和MAVEN的占位符表达式长得一样,但两者默认进水不犯河水,不能再Spring的范围内取maven的参数
-
filtering的作用就是打通两者的连接, 让井水犯河水, 具体来说是让Spring的范围内能取到maven的参数
-
filtering的使用要配合resource一起使用: 前者开启打通连接,后者指定打通的范围.
-
-
如果你的项目继承了spring-boot-starter-parent,如果想在application.properties中使用maven的占位符以获取maven的参数,此时就不能用${},因为可能会与EL表达式冲突,怎么办?
此时parent依赖将maven占位符表达式默认改为@var@的形式. 所以只能用@var@替代${var}
二、激活不同的profile
<profiles>
<profile>
<!--不同环境Profile的唯一id-->
<id>dev</id>
<properties>
<!--profiles.active是自定义的字段(名字随便起),自定义字段可以有多个-->
<profiles.active>dev</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>telework</id>
<properties>
<profiles.active>telework</profiles.active>
</properties>
</profile>
<profile>
<id>sit</id>
<properties>
<profiles.active>sit</profiles.active>
</properties>
</profile>
<profile>
<id>pre</id>
<properties>
<profiles.active>pre</profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
</profile>
</profiles>
-
当我们打包项目时,激活不同的环境,profiles.active字段就会被赋予不同的值
-
使用maven打包时通过-P参数,-P后跟上profile的唯一id,如
mvn clean package -Ptest
-
总结:可以通过maven命令给
profiles.active
赋予不同的值
三、通过maven指定SpringBoot激活哪套配置文件
spring.profiles.active=@profiles.active@
- 这儿就是第一点说的,SpringBoot配置文件里使用maven属性
- 到这里,上述知识可以连接起来了
- 通过第一点可知:maven配置文件里读取SpringBoot的
spring.profiles.active
属性 - 通过第三点可知:SpringBoot的
spring.profiles.active
属性读取maven的自定义属性profiles.active
- 通过第二点可知:通过maven命令指定maven的
profiles.active
属性 - 结论:可以通过maven命令决定打包和使用哪套配置文件
- 通过第一点可知:maven配置文件里读取SpringBoot的