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)
上一篇 2021年8月22日 下午8:00
下一篇 2021年8月22日 下午9:00


相关推荐

  • Android ImageView 的scaleType 属性「建议收藏」

    Android ImageView 的scaleType 属性「建议收藏」AndroidImageView的scaleType属性 枚举值 ImageView.ScaleType CENTER 使图像在视图中居中,但不执行缩放。 ImageView.ScaleType CENTER_CROP 均匀缩放图像(保持图像的纵横比),使图像的两个尺寸(宽度和高度)等于或大于视图的相应尺寸(减去填充)。 ImageView.ScaleType

    2022年6月17日
    26
  • mysql乐观锁和悲观锁详解

    mysql乐观锁和悲观锁详解相信很多朋友在面试的时候 都会被问到乐观锁和悲观锁的问题 如果不清楚其概念和用法的情况下 相信很多朋友都会感觉很懵逼 那么面试的结果也就不言而喻了 那么乐观锁和悲观锁到底是个什么东西 用它能来做什么呢 相信大家都遇到这种场景 当很多人 一两个人估计不行 同时对同一条数据做修改的时候 那么数据的最终结果是怎样的呢 这也就是我们说的并发情况 这样会导致以下两种结果 更新错误 你修改之后的数据

    2026年3月26日
    2
  • 沐曦股份与英伟达GPU技术对比:国产替代的机遇与挑战

    沐曦股份与英伟达GPU技术对比:国产替代的机遇与挑战

    2026年3月12日
    3
  • vue项目网页全屏功能screenfull「建议收藏」

    vue项目网页全屏功能screenfull「建议收藏」vue项目使用screenfull做网页全屏功能1.安装依赖(本人使用4.2.0版本,。最开始使用5.x.x版本取到的浏览器允许全屏的值为undefind,换了版本后成功取值)cnpminstallscreenfull@4.2.0–save2.写组件Screenfull/index.vue<template><div><svg…

    2022年4月19日
    157
  • sdram控制器设计

    sdram控制器设计SDRAM控制器

    2022年7月1日
    22
  • OSSIM资料

    OSSIM资料OSSIM 资料 nbsp nbsp nbsp nbsp nbsp nbsp nbsp OSSIM 是一个用于遥感 图片处理 地理信息系统 照相测量方面的高性能软件 是自 1996 年开发至今 由 http www ossim org 网站维护的开源项目 项目的开发人员们拥有在商业和政府遥感系统和应用软件领域多年的经验 OSSIM 由美国多个在智能 防务领域的政府部门提供资助 其技术被研究和实践领域广为应用 OSSIM 的名称来源于 OpenSource

    2025年9月12日
    4

发表回复

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

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