zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Python 写入和读取Excel数据
    postman检查点详解
    禅道安装在不同系统下搭建步骤
    Linux下如何启动和关闭防火墙
    tomcat环境搭建
    Lniux下搭建LNMP环境
    Linux下搭建LAMP环境
    通过XAMPP导入WordPress网站建立个人博客
    在Windows下XAMPP的安装及使用教程
    linux 下安装配置xampp环境
  • 原文地址:https://www.cnblogs.com/zhangjianbing/p/10130501.html
Copyright © 2011-2022 走看看