Springboot多环境开发及使用方法

 更新时间:2022年03月07日 11:20:21   作者:你好牛蛙  
这篇文章主要介绍了Springboot多环境开发及多环境设置使用、多环境分组管理的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

概述

Springboot在不同的阶段运行,所使用的环境可能不一样
比如在开发阶段、测试阶段、生产阶段,应用阶段
可能这些阶段Springboot项目运行的环境都不同,所以可以提前设置多种环境,根据场景的不同进行选择使用

多环境设置使用

方法1:
在yml配置文件中提前写好多种配置,然后选择调用哪个

方法2:
这个方法也适用于后缀名为prperties的配置文件
每种环境设置一个配置文件,然后再写一个主配置文件,在主配置文件中设置调用哪个环境,并且写公共配置
就等于将方法一中的每个部分单独写成一个文件。
这里需要注意一点,这里的环境命名方式不同了


这里的命名方式是:application-环境的名称,然后再这些环境配置的文件里面就不需要在通过spring.profiles来设置名字了,当然如果不想按照这种命名方式来命名,则需要通过spring.profiles来设置名字
主配置文件的名称就起application,在主文件中,通过

来调用对应的环境

多环境分组管理

项目开发的时候,对于不同的模块设置不同的配置文件,比如持久层,可以设置一个名为application-devDB的配置文件,MVC层设置一个名为application-devMVC的配置文件

然后在主配置中对其他的环境进行调用管理,include可以在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境间使用逗号分隔

而且,如果多个环境中有相同的配置,则后加载的环境会覆盖前面的,加载的顺序:先按照include中的环境一个一个的加载、最后加载active中的环境

但是对于同时对多个环境进行加载使其生效这个功能,include这个方法现在已经不是主流,我们更多的是使用group

对不同名字的配置文件进行分组,比如application-dev首字母大写的字符串可以划分为dev组的,如上图
然后用active来决定调用哪一组的配置文件

Maven和spring-boot的配置冲突

spring-boot基于maven坐标的控制工作的
所以为了防止maven与spring-boot互相的配置冲突,我们应该在maven中配置,然后让sping-boot去读取
当Maven与SpringBoot 同时对多环境进行控制时,以Mavn为主,SpringBoot使用@. . @占位符读取Maven对应的配置属性值
首先,有这么几个配置文件

第一步:在maven的pom文件中配置对应的多环境开发:

第二步:在springboot中引用

idea的一个小BUG
基于SpringBoot读取Maven配置属性的前提下,如果在Idea下测试,工程时pom.xml每次更新需要手动compile方可生效

到此这篇关于Springboot多环境开发的文章就介绍到这了,更多相关Springboot多环境开发内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 驼峰命名法详解(必看篇)

    Java 驼峰命名法详解(必看篇)

    下面小编就为大家带来一篇Java 驼峰命名法详解(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Mybatis插入数据后自增id获取方式

    Mybatis插入数据后自增id获取方式

    在MyBatis中,获取自增主键可以通过useGeneratedKeys属性或selectKey节点实现,useGeneratedKeys设置时,需设置keyProperty指定主键字段,数据库表也要相应设置,selectKey节点可在插入操作后,通过特定SQL查询获得主键
    2024-09-09
  • 在Map中实现key唯一不重复操作

    在Map中实现key唯一不重复操作

    这篇文章主要介绍了在Map中实现key唯一不重复操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • RocketMQ事务消息原理与使用详解

    RocketMQ事务消息原理与使用详解

    RocketMQ事务消息(Transactional Message)是指应用本地事务和发送消息操作可以被定义到全局事务中,要么同时成功,要么同时失败。RocketMQ的事务消息提供类似 X/Open XA 的分布式事务功能,通过事务消息能达到分布式事务的最终一致
    2023-02-02
  • Spring 循环依赖之AOP实现详情

    Spring 循环依赖之AOP实现详情

    这篇文章主要介绍了Spring 循环依赖之AOP实现详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的盆友可以参考一下
    2022-07-07
  • Java中的ReentrantReadWriteLock实现原理详解

    Java中的ReentrantReadWriteLock实现原理详解

    这篇文章主要介绍了Java中的ReentrantReadWriteLock实现原理详解,读写锁实现了接口ReadWriteLock,适合于读多写少的情况,支持公平锁和非公平锁,支持可冲入(进入读锁后可再进入读锁,进入写锁后可再进入写锁和读锁),需要的朋友可以参考下
    2024-01-01
  • Springboot中@scheduled注解解析

    Springboot中@scheduled注解解析

    这篇文章主要介绍了Springboot中@scheduled注解解析,定时任务就是在指定时间执行程序,或周期性执行计划任务,Java中实现定时任务的方法有很多,本文从从JDK自带的一些方法来实现定时任务的需求,需要的朋友可以参考下
    2023-09-09
  • Java用for循环Map详细解析

    Java用for循环Map详细解析

    本篇文章主要介绍了Java用for循环Map,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • 三分钟读懂mybatis中resultMap和resultType区别

    三分钟读懂mybatis中resultMap和resultType区别

    这篇文章主要给大家介绍了mybatis中resultMap和resultType区别的相关资料,resultType和resultMap都是mybatis进行数据库连接操作处理返回结果的,需要的朋友可以参考下
    2023-07-07
  • Java中使用WebUploader插件上传大文件单文件和多文件的方法小结

    Java中使用WebUploader插件上传大文件单文件和多文件的方法小结

    这篇文章主要介绍了Java中使用WebUploader插件上传大文件单文件和多文件的方法小结的相关资料,需要的朋友可以参考下
    2016-06-06

最新评论