springboot如何指定profile启动spring boot项⽬可为不同的环境配置相应的配置⽂件
如下图所⽰:
<dependencies>
其他依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
<scope>runtime</scope>
</dependency>
<!--阿⾥的druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
</dependencies>
<!--配置环境的profile-->
<profiles>
<profile>
<id>dev</id>
<properties>
<!--使⽤${environment}获取值-->
<environment>dev</environment>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<environment>test</environment>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<environment>prod</environment>
</properties>
</profile>
</profiles>
<build>
<finalName>spring-boot-lean-${environment}</finalName>
<resources>
<!--排除环境配置⽂件-->
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>application-*.yml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<!-- 打包时包含的⽂件 -->
<includes>
<include>application-${environment}.yml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
本地开发使⽤开发环境,idea启动开发环境配置如下:
1、点击Edit Configrations
2、配置如下图
3、启动⼯程
控制台打印了l中配置的变量
开发时,也有需要⼀个⼯程启动多个实例的场景,idea⽀持⼀个spring boot项⽬启动多个实例。
⽅法⾮常简单,只需要只需要按照上⾯的教程在idea再新建⼀个启动配置,把Active profiles指定为prod即可,如下图:
通过下图可以看到,本地可以启动多个spring boot 实例
多环境打包
1、运⾏maven打包命令:
打包test:
mvn clean package -st.skip=true -P test
这样打出来的包中yml⽂件只会包含:l、l 打包prod:
mvn clean package -st.skip=true -P test
这样打出来的包中yml⽂件只会包含:l、l
spring framework jar包2、到jar包运⾏
java -jar 名称.jar --spring.profiles.active=prod
若打出来的是测试环境的包则运⾏:
java -jar 名称.jar --spring.profiles.active=test
补充⼀点
执⾏ mvn clean package -st.skip=true -P test ,target⽬录中只有l、l,此时使⽤idea启动⼯程时⽆法使⽤dev的配置,因为target中没有l。
需要将target删除后,重新启动⼯程,这时候target中就会有全部的配置⽂件,就能使⽤dev的配置了。
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。