欢迎光临散文网 会员登陆 & 注册

Spring系列(十一):@Profile 注解用法介绍

2022-07-03 07:54 作者:IT技术分享社区  | 我要投稿

今天给大家分享Spring属性注入的注解@Profile 介绍,希望对大家能有所帮助!       

        

一、@Profile 注解的作用

在Spring容器中如果存在同一类型的多个组件,可以使用@Profile注解标识实际要获取的是哪一个bean,这在不同的环境使用不同的变量的场景下非常有用。最典型的例子:开发环境、测试环境、生产环境会配置不同的数据源,在尽量不修改代码的情况下,可以使用这个注解来动态指定要连接的数据源。

二、@Profile 指定环境的方式

2.1 JVM启动参数

运行的时候给虚拟机参数位置增加 -Dspring.profiles.active=dev

2.2 通过代码方式控制:

  • 首先创建一个AnnotationConfigApplicationContext

  • 设置环境变量,指定要激活的环境

  • 注册配置类

  • 启动的时候刷新容器

三、@Profile 实现切换数据源示例

3.1 导入依赖

3.2 新建数据源配置文件dataSource.properties


3.3 新建TestProfileConfig.java 配置类

3.4 新建测试类TestProfile.java




输出结果:dataSourceDevdataSourceOnLine

四、使用总结

1、针对标注了环境标识的bean,只有在这个环境被激活的时候,才会注入到容器当中。默认是default环境。2、如果@Profile 注解的位置在类上,相当于只有在指定该环境的情况下,整个配置类里面的配置才有机会生效。3、针对没有标注环境表示的bean,在任何环境下都可以被正常加载。


Spring系列(十一):@Profile 注解用法介绍的评论 (共 条)

分享到微博请遵守国家法律