springboot结合maven配置不同环境的profile方式

 更新时间:2022年01月18日 10:56:19   作者:年少bu轻狂  
这篇文章主要介绍了springboot结合maven配置不同环境的profile方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot结合maven配置不同环境的profile

1、在spring-boot中新建配置文件

spring-boot不同环境配置文件格式为application-{profile}.yml

说明:

如果application.yml中的配置和application-{profile}.yml相冲突时,application.yml中的配置会被覆盖掉。

2、在application.yml中增加属性

spring:
    profiles:
        active: @spring.profiles.active@

说明:如果想要获取mvn中设置的属性变量,需要使用@mvn变量名@(该方式为mvn的默认filter方式,

如果想要更改方式,可以配置自定义filter),不能使用${mvn变量名},否则无法获取到

如果你

3、在pom.xml中添加不同的profile

<profiles>
   <profile>
      <id>dev</id>
      <activation>
         <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
         <!-- default Spring profiles -->
         <spring.profiles.active>dev</spring.profiles.active>
      </properties>
   </profile>
       <profile>
           <id>prod</id>
           <properties>
               <!-- default Spring profiles -->
               <spring.profiles.active>prod</spring.profiles.active>
           </properties>
       </profile>
</profiles>

说明:该配置添加了两个profile,一个dev,一个prod分别对应application-dev.yml和application-prod.yml

4、测试

  • Maven启动,指定mvn中的Profile通过-P,如mvn spring-boot:run -Pdev
  • Maven打包,指定mvn中的Profile通过-P,如mvn package -Pdev -DskipTests

另:

如果想要自定过滤器,可以使用mvn的maven-resources-plugin插件,具体说明参考这里

springboot maven多环境配置

环境

  • 本地环境(dev)
  • 测试环境(test)
  • 预生产环境(pre-pro)
  • 生产环境(pro)

不同环境对应不同的文件夹

SpringBoot有profiles功能的支持,我们将此功能加入进来

1、在resources下创建/dev文件夹

在dev文件夹下创建application.properties和application-dev.properties

在resources下创建dev、teest、pro等文件夹是为了maven打包多环境用的.

在本地开发运行时需要在resources下创建一个和打包环境文件夹里相同的文件,因为profiles原因所以需要,创建dev、test、pro是为maven打包用的,而在resources下创建相关文件是为了多功能环境开发或者调试用的

#application.properties文件内容
spring.profiles.active=dev
------------------------分割线----------------------------
#application-dev.properties文件内容
#数据库相关配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
具体配置各求所需,这里就不一一列举了

测试和生产大同小异,同上只需修改配置值即可,dev对应本地配置、test对应测试配置、pro对应生产配置

application-xx.properties 为固定写法,比如application-test.properties就是测试环境配置文件的命名

2、在pom.xml文件加入相关配置如下

此配置加入到 < build > 标签里

<resources>
	<resource>
		<directory>src/main/resources</directory>
		<!-- 资源根目录排除各环境的配置,使用单独的资源目录来指定 -->
		<excludes>
			<exclude>pro/*</exclude>
			<exclude>dev/*</exclude>
			<exclude>test/*</exclude>
			<!--
			   因为配置profiles原因,我们在打包不希望将如下文件打包进去,所以打包时注释掉即可
			   如果是本地开发运行需要去掉注释
            -->
			<!--<exclude>application-pro.properties</exclude>-->
			<!--<exclude>application-test.properties</exclude>-->
			<!--<exclude>application-dev.properties</exclude>-->
		</excludes>
		<filtering>true</filtering>
	</resource>
	<resource>
		<directory>src/main/resources/${profiles.active}</directory>
	</resource>
</resources>
#profiles配置和<build>同级
<profiles>
		<profile>
			<!-- 本地开发环境 -->
			<id>dev</id>
			<properties>
				<profiles.active>dev</profiles.active>
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<profile>
			<!-- 测试环境 -->
			<id>test</id>
			<properties>
				<profiles.active>test</profiles.active>
			</properties>
		</profile>
		<profile>
			<!-- 生产环境 -->
			<id>pro</id>
			<properties>
				<profiles.active>pro</profiles.active>
			</properties>
		</profile>
	</profiles>
	

然后选中对应的环境执行maven相关操作即可,博主用的IDEA

maven打包

如果您用的是eclipse的话,执行maven命令即可,如:clean package -Ppro就是打包pro环境

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 浅谈java中Math.random()与java.util.random()的区别

    浅谈java中Math.random()与java.util.random()的区别

    下面小编就为大家带来一篇浅谈java中Math.random()与java.util.random()的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • Spring Boot中快速操作Mongodb数据库指南

    Spring Boot中快速操作Mongodb数据库指南

    这篇文章主要给大家介绍了关于Spring Boot中如何快速操作Mongodb的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • mybatis省略@Param注解操作

    mybatis省略@Param注解操作

    这篇文章主要介绍了mybatis省略@Param注解操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 使用eclipse 实现将springboot项目打成jar包

    使用eclipse 实现将springboot项目打成jar包

    这篇文章主要介绍了使用eclipse 实现将springboot项目打成jar包的流程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • SpringCloud Eureka 服务注册实现过程

    SpringCloud Eureka 服务注册实现过程

    这篇文章主要介绍了SpringCloud Eureka 服务注册实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 由浅入深快速掌握Java 数组的使用

    由浅入深快速掌握Java 数组的使用

    Java 数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。 Java 语言中提供的数组是用来存储固定大小的同类型元素
    2022-04-04
  • JAVA实现往字符串中某位置加入一个字符串

    JAVA实现往字符串中某位置加入一个字符串

    这篇文章主要介绍了JAVA实现往字符串中某位置加入一个字符串,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Java中Date类和Calendar类的常用实例小结

    Java中Date类和Calendar类的常用实例小结

    这篇文章主要介绍了Java中Date类和Calendar类的常用实例小结,是Java入门学习中的基础知识的运用,需要的朋友可以参考下
    2015-08-08
  • SpringMVC集成FastJson使用流程详解

    SpringMVC集成FastJson使用流程详解

    如果你使用 Spring MVC 来构建 Web 应用并对性能有较高的要求的话,可以使用 Fastjson 提供的FastJsonHttpMessageConverter 来替换 Spring MVC 默认的 HttpMessageConverter 以提高 @RestController @ResponseBody @RequestBody 注解的 JSON序列化速度
    2023-02-02
  • 如何使用Comparator比较接口实现ArrayList集合排序

    如何使用Comparator比较接口实现ArrayList集合排序

    这篇文章主要介绍了如何使用Comparator比较接口实现ArrayList集合排序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论