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

最新文章

  1. My first blog in cnblog
  2. Node聊天程序实例04:chat_ui.js
  3. github 多个项目共用同一个key的方法
  4. J2EE 第二阶段项目之JUnit4进行单元测试(五)
  5. 子iframe 怎么调用 父级的JS函数
  6. C#中的 序列化和反序列化
  7. EL&struts2标签 读取map,list集合
  8. 1、c#中可以有静态构造方法,而java中没有,例如在单例模式中c#可以直接在静态构造中实例化对象,而java不可以
  9. setBackgroundMusicLoop for cocos2dx
  10. 2 WPF之XMAL----XMAL概览
  11. Ansible@一个有效的配置管理工具--Ansible configure management--翻译(十二)
  12. 文件搜索查找功能VC++
  13. 解析jQuery中extend方法--源码解析以及递归的过程《二》
  14. Linux - 死锁现象
  15. 修饰符-static
  16. Python3+Selenium2完整的自动化测试实现之旅(五):自动化测试框架、Python面向对象以及POM设计模型简介
  17. CSS----布局不理解
  18. docker-使用Dockerfile制作镜像
  19. Linux之安装虚拟机/虚拟操作系统[VisualBox]
  20. 011.KVM-V2V迁移

热门文章

  1. 一致性hash算法应用场景、详解与实现(JAVA)
  2. 【转】pdf文件自动切白边
  3. c#学习笔记1-简单算法
  4. 【数据结构】7.java源码关于LinkedList
  5. VB.NET 读写XML
  6. git 学习笔记 --Bug分支
  7. git学习笔记 ---分支管理
  8. 创建包含CRUD操作的Web API接口5:实现Delete方法
  9. The driver is automatically registered via the SPI and manual loading of the driver class....
  10. Hive学习笔记(三)—— 数据类型