Spring源码窥探之:@Profile
Spring为我们提供的多环境启动
1. 配置类,注入三个不同环境的数据源,并加上注解
/**
* description: 以下准备了三套不同环境的数据源
*
* @author 70KG
* @date 2018/12/17
*/
@Configuration
public class MyConfig { @Bean
@Profile("dev")
public MySqlInfo mySqlInfoDev() {
MySqlInfo mySqlInfo = new MySqlInfo();
mySqlInfo.setUserName("zhangsan");
mySqlInfo.setPassWord("1111");
mySqlInfo.setDriver("com.mysql.jdbc.driver");
System.out.println("dev数据源被注入。。。。。。");
return mySqlInfo;
} @Bean
@Profile("test")
public MySqlInfo mySqlInfoTest() {
MySqlInfo mySqlInfo = new MySqlInfo();
mySqlInfo.setUserName("lisi");
mySqlInfo.setPassWord("2222");
mySqlInfo.setDriver("com.mysql.jdbc.driver");
System.out.println("test数据源被注入。。。。。。");
return mySqlInfo;
} @Bean
@Profile("prod")
public MySqlInfo mySqlInfoProd() {
MySqlInfo mySqlInfo = new MySqlInfo();
mySqlInfo.setUserName("wangwu");
mySqlInfo.setPassWord("3333");
mySqlInfo.setDriver("com.mysql.jdbc.driver");
System.out.println("prod数据源被注入。。。。。。");
return mySqlInfo;
} }
2. 测试类,假设开启生产的数据源
/**
* description
*
* @author 70KG
* @date 2018/12/17
*/
public class Test01 { @Test
public void test() { // 无参构造创建容器
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext();
// 读取配置文件,并属性赋值
ac.register(MyConfig.class);
ac.getEnvironment().setActiveProfiles("prod");
// 刷新容器
ac.refresh(); } }
3. 结果
prod数据源被注入。。。。。。
4. 说明
@Profile不仅可以加在Bean上,还可以加在到类上,表示这个类所属的环境
还有一种方式让环境生效,配置虚拟机参数,-Dspring.profiles.active=prod
Spring源码窥探之:@Profile的更多相关文章
- Spring源码窥探之:注解方式的AOP原理
AOP入口代码分析 通过注解的方式来实现AOP1. @EnableAspectJAutoProxy通过@Import注解向容器中注入了AspectJAutoProxyRegistrar这个类,而它在容 ...
- Spring源码窥探之:声明式事务
1. 导入驱动,连接池,jdbc和AOP的依赖 <!-- c3p0数据库连接池 --> <dependency> <groupId>c3p0</groupId ...
- Spring源码窥探之:AOP注解
AOP也就是我们日常说的@面向切面编程,看概念比较晦涩难懂,难懂的是设计理念,以及这样设计的好处是什么.在Spring的AOP中,常用的几个注解如下:@Aspect,@Before,@After,@A ...
- Spring源码窥探之:Spring AOP初步使用
AOP即面向切面编程.它的底层实际是用了spring的动态代理,具体是JDK的代理还是CGLIB的代理,就视情况而定了.本博客园仅仅作为平时记录,显得有些杂乱无章,如果想了解动态代理,设计模式,请访问 ...
- Spring源码窥探之:@Value
1. 首先定义实体 /** * @author 70KG * @Title: Apple * @Description: 苹果实体 * @date 2018/10/22下午9:26 * @From w ...
- Spring源码窥探之:BeanPostProcessor
Spring的Bean后置处理器 1. 实体类 /** * @author 70KG * @Title: Train * @Description: * @date 2018/7/23下午11:31 ...
- Spring源码窥探之:Spring AOP初步
AOP(Aspect Oriented Programming):即我们常说的面向切面编程. 什么是AOP?AOP是在我们原来写的代码的基础上,进行一定的包装,比如在方法执行前.方法返回后.方法抛出异 ...
- Spring源码窥探之:单实例Bean的创建过程
finishBeanFactoryInitialization(beanFactory);初始化剩下的所有的单实例(非懒加载)Bean(Instantiate all remaining (non-l ...
- Spring源码窥探之:扩展原理BeanDefinitionRegistryPostProcessor
BeanDefinitionRegistryPostProcessor继承自BeanFactoryPostProcessor,其中有两个接口,postProcessBeanDefinitionRegi ...
随机推荐
- 64位linux安装了32位jdk8报错怎么办-bash:/usr/local/jdk1.8/jdk1.8.0_181/bin/java:/lib/ld-linux.so.2:badELFinterpreter:Nosuch
-bash:/usr/local/jdk1.8/jdk1.8.0_181/bin/java:/lib/ld-linux.so.2:badELFinterpreter:Nosuch https://bl ...
- repost: Deep Reinforcement Learning
From: http://wanghaitao8118.blog.163.com/blog/static/13986977220153811210319/ accessed 2016-03-10 深度 ...
- ACM算法锦集
一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的 应用(二叉排序树,判定树,博弈树,解答树等) 3,文件操作(从文本文件中读入数据并输出到文本文 件中 ...
- spark2.2 从入门到精通全套视频教程(含网盘下载地址)
Spark2.2从入门到精通链接:https://pan.baidu.com/s/1GnPq_p4wOV916REMB_XJ5w 提取码:16zp
- CLRS10.2-4练习 - 修改链表查询方法
要求: As written, each loop iteration in the LIST-SEARCH' procedure requires two tests:one for x ≠ L.n ...
- java之mybatis整合spring
这篇讲解spring+mybatis的整合. 目录结构: 一. 整合spring的第一种方法 1. 新建 java 项目 : spring_mybatis 2.导入jar 包-----spring和m ...
- Charles配置https
1. 安装Charles ,破解将Charles.jar 覆盖安装路径的\lib 中的文件 2. 查看本机IP 3. 设置手机代理 4. 设置: 5. 手机安装证书 手机浏览器输入网址:chls.pr ...
- tf.reduce_max的运用
a=np.array([[[[1],[2],[3]],[[4],[25],[6]]],[[[27],[8],[99]],[[10],[11],[12]]],[[[13],[14],[15]],[[16 ...
- [JLOI2014]松鼠的新家 (树剖)
题目 P3258 [JLOI2014]松鼠的新家 解析 非常裸的一道树剖题 链上修改+单点查询的板子 记录一下所经过的点\(now[i]\),每次更新\(now[i-1]到now[i]\) 我们链上更 ...
- MySQL计算相邻两行某列差值的方法
简述 博主最近因工作任务缠身,都无暇顾及到我的这片自留地了.前段时间稍有空闲,花了较多的精力学习<啊哈算法>,从中学习到很多之前没有太注重的内容,收益颇丰.但是这些算法题目还没有看完,等后 ...