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不同环境之间的相互切换


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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 任务调度器有哪些_本地计算机上的task scheduler

    任务调度器有哪些_本地计算机上的task schedulerTaskScheduler可以看做任务调度的客户端,负责任务的提交,并且请求集群管理器对任务调度。TaskScheduler的类UML图如下,针对不同部署方式会有不同的TaskScheduler与SchedulerBackend进行组合。TaskScheduler类负责任务调度资源的分配,SchedulerBackend负责与Driver、Executor通信收集Executor上分配给该应用的资…

    2022年10月11日
  • 树莓派 网络设置_树莓派4b教程

    树莓派 网络设置_树莓派4b教程概览你想做的第一件事一定是把你的树莓派连接到因特网上。在这节课里,你将会学到如何:使用网线连接到以太网在Raspbian和Occidentalis上使用无线网卡找到树莓派的IP地址使用有线网络最快的把树莓派接入到因特网的方法是使用一根以太网线把树莓派连接到你家的路由器上。当你把网线连入树莓派的时候,你就会看到网络LED灯开始闪烁了。对于大多数的家庭网络来说,你就不需要再做任何进一步的配置了。但为了…

  • Adobe Dreamweaver的使用教程

    Adobe Dreamweaver的使用教程1.打开AdobeDreamweaver软件2.打开后的界面3.新建一个站点,保存网页文件,图片,视频等4.输入站点的名字和保存的路径5.新建html文件6.选择设计模式7.制作你所需要的结果8.保存网页,才能在浏览器中预览

  • MySQL多表查询核心优化

    MySQL多表查询核心优化在一般的项目开发中,对数据表的多表查询是必不可少的。而对于存在大量数据量的情况时(例如百万级数据量),我们就需要从数据库的各个方面来进行优化,本文就先从多表查询开始。

  • 1.3万亿条数据查询如何做到毫秒级响应?

    1.3万亿条数据查询如何做到毫秒级响应?

    2020年11月14日
  • c++拷贝构造函数

    c++拷贝构造函数

发表回复

您的电子邮箱地址不会被公开。

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