SpringBoot(25) — @Profile区分环境加载Bean

前言

在上节中我们已经介绍了注解@ScopeBean作用域的控制,大家感兴趣的话可参考
SpringBoot(24) — @Scope设置bean的作用域
今天我们介绍一个新的注解@Profile。注解@Profile可用于区分不同环境加载Bean。在讲此篇文章之前,我建议大家先了解下我之前写过的关于区分开发环境的文章
SpringBoot(8) — 自定义配置文件设置多开发环境

今天涉及内容有:

  1. 多开发环境的搭建
  2. @Profile的使用

一. 多开发环境的搭建

Springboot的开发过程中,我们会涉及到多开发环境的问题。如正式环境测试环境的区分。那么这个知识点,我在SpringBoot(8) — 自定义配置文件设置多开发环境中已经讲过了。在那篇文章中,我们正式测试环境的区分都是通过在配置文件application.yml中的设置属性来调控的。而我们今天讲的不同点在于,我们可以通过注解@Profile在代码层给项目做不同环境的区分。这个区分也是建立在配置文件application.yml区分开发环境的基础之上。因此,我们仍需要在项目中建不同的配置文件,用以标榜不同的开发环境。
下面以建立一个正式开发环境和一个测试开发环境去连接不同的数据库为例。
项目/src/main/resources/下新建两个配置文件application-release.ymlapplication-test.yml,项目示例截图如下:

image.png

这里,我们主要采用@Profile代码层开发环境的切换问题,所以不必在
配置文件application-release.ymlapplication-test.yml中去写数据库连接相关参数,我们将在代码中把数据库连接参数写死,然后通过@Profile区分不同的环境。

二. @Profile 的使用

@Profile区分不同开发环境和配置文件是息息相关的。@Profile@Profile(字符串)的形式来区分不同开发环境。而@Profile(字符串)的字符串正是application-字符串.yml中的字符串。举例说明,我们上面已经建立了两个开发环境的配置文件:application-release.ymlapplication-test.yml,则在代码中,我们可以通过@Profile("release")@Profile("test")来区分正式系统和测试系统要执行的代码。下面以不同环境连接不同数据库为例,首先我们要写一个配置数据库参数的接口类ITs:

还有 51% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥2.00 继续阅读

相关阅读更多精彩内容

友情链接更多精彩内容