美文网首页
spring boot中获取profile(当前运行的环境)

spring boot中获取profile(当前运行的环境)

作者: 一介书生独醉江湖 | 来源:发表于2022-05-05 16:14 被阅读0次
    # 1)获取项目当前运行的是哪个环境;
    # 2)需要根据环境的不同来执行不同的业务逻辑;
    
    
    
    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;
    
    /**
     * @Author ds
     * @Date 2022-05-05
     */
    @Component
    public class SpringContextUtil implements ApplicationContextAware {
        /**
         * spring的应用上下文
         */
        private static ApplicationContext applicationContext;
    
        /**
         * 初始化时将应用上下文设置进applicationContext
         * @param applicationContext
         * @throws BeansException
         */
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            SpringContextUtil.applicationContext=applicationContext;
        }
    
        public static ApplicationContext getApplicationContext(){
            return applicationContext;
        }
    
        /**
         * 根据bean名称获取某个bean对象
         *
         * @param name bean名称
         * @return Object
         * @throws BeansException
         */
        public static Object getBean(String name) throws BeansException {
            return applicationContext.getBean(name);
        }
    
        /**
         * 根据bean的class获取某个bean对象
         * @param beanClass
         * @param <T>
         * @return
         * @throws BeansException
         */
        public static <T> T getBean(Class<T> beanClass) throws BeansException {
            return applicationContext.getBean(beanClass);
        }
    
        /**
         * 获取spring.profiles.active
         * @return
         */
        public static String getProfile(){
            return getApplicationContext().getEnvironment().getActiveProfiles()[0];
        }
    }
    
            if("pro".equals(SpringContextUtil.getProfile())){
                // 生产环境需要执行的逻辑
            }else if("dev".equals(SpringContextUtil.getProfile())){
                // 测试环境需要执行的逻辑
            }
    
    # 参考:https://blog.csdn.net/qq_36551991/article/details/118972086
    

    相关文章

      网友评论

          本文标题:spring boot中获取profile(当前运行的环境)

          本文链接:https://www.haomeiwen.com/subject/yaxoyrtx.html