zoukankan      html  css  js  c++  java
  • 十二、【注解】Spring注解@Profile

    Spring为我们提供的多环境启动

    1. 配置类,注入三个不同环境的数据源,并加上注解
    /**
     * @author zhangjianbing
     * @date 2020年9月23日
     */
    @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;
        }
    
    }
    
    1. 测试类,假设开启生产的数据源
    /**
     * @author zhangjianbing
     * @date 2020年9月23日
     */
    public class Test01 {
    
        @Test
        public void test() {
    
            // 无参构造创建容器
            AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext();
            // 读取配置文件,并属性赋值
            ac.register(MyConfig.class);
            ac.getEnvironment().setActiveProfiles("prod");
            // 刷新容器
            ac.refresh();
    
        }
    
    }
    
    1. 结果
    prod数据源被注入。。。。。。
    
    1. 说明

    @Profile不仅可以加在Bean上,还可以加在到类上,表示这个类所属的环境

    还有一种方式让环境生效,配置虚拟机参数,-Dspring.profiles.active=prod

  • 相关阅读:
    浅尝《Windows核心编程》之 等待函数
    linux 下 解压rar的过程
    一些多线程编程的例子(转)
    js数组操作《转》
    缩略图片处理<收藏>
    .net 框架
    详解NeatUpload上传控件的使用
    NHibernate工具
    xml xpath语法《转》
    C#事务技术
  • 原文地址:https://www.cnblogs.com/zhangjianbing/p/13726701.html
Copyright © 2011-2022 走看看