03_SpringBoot不同环境之间的相互切换

03_SpringBoot不同环境之间的相互切换

在软件系统开发的不同阶段中,因为当前环境的不同,我们需要进行系统环境的切换,在SpringBoot中针对环境的切换,做了统一处理,是的环境的切换,变得异常简单。

SpringBoot中,application.properties 是 springboot 在运行中所需要的配置信息。

当我们在开发阶段,使用自己的机器开发,测试的时候需要用的测试服务器测试,上线时使用正式环境的服务器。

这三种环境需要的配置信息都不一样,当我们切换环境运行项目时,需要手动的修改多出配置信息,非常容易出错。

为了解决上述问题,springboot 提供多环境配置的机制,让开发者非常容易的根据需求而切换不同的配置环境。

在 src/main/resources 目录下创建三个配置文件:

application-dev.properties:用于开发环境 application-test.properties:用于测试环境 application-prod.properties:用于生产环境 

我们可以在这个三个配置文件中设置针对不同运行环境,配置不同的信息,application.properties 配置公共的信息。

在 application.properties 中配置:

spring.profiles.active=dev

表示激活 application-dev.properties 文件配置, springboot 会加载使用 application.properties 和 application-dev.properties 配置文件的信息。

同理,可将 spring.profiles.active 的值修改成 test 或 prod 达到切换不同运行环境的目的。

例如我们在不同的环境下,我们的web服务器tomcat需要使用不同的端口,那么此时的配置文件信息如下:

03_SpringBoot不同环境之间的相互切换

03_SpringBoot不同环境之间的相互切换

03_SpringBoot不同环境之间的相互切换

接下来在主配置文件中,配置具体的使用环境即可:03_SpringBoot不同环境之间的相互切换 

运行如下:

03_SpringBoot不同环境之间的相互切换

切换项目启动的环境不仅对读取配置文件信息有效,也可以对 Bean 有效。

当我们需要对不同环境使用不同的 Bean 时,可以通过 @Profile 注解进行区分,如下

创建一个JavaBean,项目结构如下:

03_SpringBoot不同环境之间的相互切换

bean的代码如下:

@Configurationpublic class BeanConfiguration {    @Bean    @Profile("dev")    public String devDemo() {        System.out.println("开发环境的 Bean");        return "";    }    @Bean    @Profile("test")    public String testDemo(){        System.out.println("测试环境的 Bean");        return "";    }    @Bean    @Profile("pro")    public String proDemo() {        System.out.println("生成环境的 Bean");        return "";    }}


运行结果如下:

03_SpringBoot不同环境之间的相互切换


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111296.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java如何调用第三方接口

    java如何调用第三方接口最近在做一个项目,因一些机制问题,需要我用java代码调用第三方接口。因其接口使用的是@RequestBody注入访问对象的,@RequestBody接受收的是一个json格式的字符串,一定是一个字符串。类似于:{“pageNumber”:1,“pageSize”:10}这种json字符串访问方式。要想在java后端代码中访问第三方接口,首先引入maven包。<dependency><groupId>org.codehaus.jackson

    2022年5月28日
    249
  • ERROR: Could not install packages due to an OSError…解决方法

    ERROR: Could not install packages due to an OSError…解决方法ERROR:CouldnotinstallpackagesduetoanOSError…解决办法ERROR:CouldnotinstallpackagesduetoanOSError:[WinError5]拒绝访问。:‘c:\users\lenovo\python\lib\site-packages\~umpy\.libs\libopenblas.WCDJNK7YVMPZQ2ME2ZZHJJRJ3JIKNDB7.gfortran-win_amd64.dll’Con

    2022年6月24日
    196
  • 网络摄像头RTSP视频流WEB端实时播放实现方案[通俗易懂]

    网络摄像头RTSP视频流WEB端实时播放实现方案[通俗易懂]IPC视频流怎么实时在WEB浏览器播放,视频流格式是RTSP。下面我整理了自己实现的方案以及网上看到的一些方案一、FFmpeg+nginx将转hls通过video.js在支持h5浏览器播放(我实现的)参见:Nginx+FFmpeg实现rtsp流转hls流,在WEB通过H5video实现视频播放不足:hls延迟较rtmp、http-flv大二、FFmpeg+nginx-…

    2022年10月18日
    2
  • python3 gil锁_python gil 多线程

    python3 gil锁_python gil 多线程前言python的使用者都知道Cpython解释器有一个弊端,真正执行时同一时间只会有一个线程执行,这是由于设计者当初设计的一个缺陷,里面有个叫GIL锁的,但他到底是什么?我们只知道因为他导致pyt

    2022年8月7日
    8
  • python2.7安装matplotlib_Matplotlib安装

    python2.7安装matplotlib_Matplotlib安装Matplotlib安装教程有很多不同的方法来安装matplotlib,最好的方法取决于你正在使用什么操作系统,你已经安装了什么,以及如何使用它。为了避免在此页面上浏览所有细节(和潜在的并发症),有几个方便的选择。安装预建的软件包大多数平台:科学的Python发行第一个选择是使用已经提供matplotlib内置的预包装的python发行版之一。Continuum.ioPython发行版(Anac…

    2022年6月29日
    26
  • 共享打印机无法连接到打印机0x00000bcb_共享打印机错误为0X0000011b

    共享打印机无法连接到打印机0x00000bcb_共享打印机错误为0X0000011b  有不少用户遇到了网络共享打印机无法连接的问题,尤其是Win10最常遇见,打印机后提示“windows无法连接到打印机0x0000011b”错误。下面系统之家小编给大家带来0x0000011b共享打印机无法连接解决方法。一起来看看吧。  0x0000011b共享打印机无法连接解决方法  卸载补丁  打开设置——>更新和安全—->Windows更新—->“查看更新历史记录—->卸载更新  Win10更新2021年9月补丁后导致的,共享打印机.

    2025年9月7日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号