文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Maven的porfile与SpringBoot的profile结合使用案例详解

2024-04-02 19:55

关注

使用maven的profile功能,我们可以实现多环境配置文件的动态切换,可参考我的上一篇博客。但随着SpringBoot项目越来越火,越来越多人喜欢用SpringBoot的profile功能。但是用SpringBoot的profile功能时,一般我们默认激活的profile肯定是开发环境的profile。当我们打成jar包后,如果在生产环境下运行,就需要在运行这个jar包的命令后面加个命令行参数来指定切换的profile。虽然这样很方便,但是容易忘记加这个参数。 我们可以通过maven的profile功能和SpringBoot的profile功能结合使用。效果为:当maven打包时通过profile指定配置为test环境的配置,那么我们SpringBoot里面默认激活的就是test环境的配置。 这样我们只需要打包时指定profile后,直接运行jar就可以,不需要在命令行加参数了。这个效果就和我们普通web项目使用maven的profile的效果类似了。

一、思路

(1)通过maven的profile功能,在打包的时候,通过-P指定maven激活某个pofile,这个profile里面配置了一个参数activatedProperties,不同的profile里面的这个参数的值不同
(2)SpringBoot的application.properties文件里面spring.profiles.active填的值取上面maven的activatedProperties参数值。 这样能实现的效果为:

示例一:

    maven打包命令为   mvn clean package -P test    

    那么application.properties里面的spring.profiles.active值就是maven中 id为test的profile的activatedProperties参数值

示例二:

    maven打包命令为   mvn clean package -P product

    那么application.properties里面的spring.profiles.active值就是maven中 id为product的profile的activatedProperties参数值

二、案例

(1)项目结构介绍 项目结构如下图所示,是个常见的SpringBoot项目结构,不同环境的propertis文件的后缀不同(见图中红框处)

(2)pom文件中配置maven的profile maven的profile的配置见下面代码 注意:maven的profile中activatedProperties参数值需要和SpringBoot的不同环境Properties文件的后缀一样。 比如开发环境的Properties的文件名为application-develop.properties,那么maven中develop的profile里面的activatedProperties参数值就应该是develop


 <profiles>
        <profile>
        	<!-- 开发 -->
            <id>develop</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <activatedProperties>develop</activatedProperties>
            </properties>
        </profile>
        <profile>
        	<!-- 测试 -->
            <id>fuy</id>
            <properties>
                <activatedProperties>fuy</activatedProperties>
            </properties>
        </profile>
        <profile>
        	<!-- 生产 -->
            <id>production</id>
            <properties>
                <activatedProperties>production</activatedProperties>
            </properties>
        </profile>
    </profiles>

(3)application.properties中的配置

    在application.properties文件中配置SpringBoot默认激活的propertis文件。这时候spring.profiles.active取上面maven的profile里面配置的activatedProperties的值,这个取值要用@符号来取。具体见下面代码


spring.profiles.active=@activatedProperties@

(4)如何打包 打包时用 mvn clean package -P profile的id 如果不加-P参数,那么默认就是<activeByDefault>true</activeByDefault>所在的profile

(5)效果图 当我们打包命令为mvn clean package -P production时,解压后的jar包中application.properties配置文件中spring.profiles.active的值自动变成了production

三、小结

(1)该方式优点:打包后不需要通过命令行参数来切换不同环境的配置文件,把指定环境的这一步放到了maven打包的命令上

(2)该方式其实是利用了maven的profile功能和SpringBoot的profile相结合使用

四、参考链接

(1)https://www.cnblogs.com/zeng1994/p/a442108012ffd6a97b22c63055b48fe9.html

(2)http://dolszewski.com/spring/spring-boot-properties-per-maven-profile/

到此这篇关于Maven的porfile与SpringBoot的profile结合使用详解的文章就介绍到这了,更多相关Maven的porfile与SpringBoot的profile使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯