zoukankan      html  css  js  c++  java
  • Spring工具类 非spring管理环境中获取bean及环境配置

    SpringUtils.java

    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
    import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;
    
    /**
     * spring工具类
     */
    @Component
    public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware {
        /**
         * Spring应用上下文环境
         */
        private static ConfigurableListableBeanFactory beanFactory;
    
        private static ApplicationContext applicationContext;
    
        @Override
        public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
            SpringUtils.beanFactory = beanFactory;
        }
    
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            SpringUtils.applicationContext = applicationContext;
        }
    
    
        /**
         *  根据类获取bean
         * @param clz
         * @return
         */
        public static <T> T getBean(Class<T> clz)  {
            T result = (T) beanFactory.getBean(clz);
            return result;
        }
    
    
    
        /**
         * 获取当前的环境配置,无配置返回null
         * @return 当前的环境配置
         */
        public static String[] getActiveProfiles() {
            return applicationContext.getEnvironment().getActiveProfiles();
        }
    
        /**
         * 获取当前的环境配置,当有多个环境配置时,只获取第一个
         * @return 当前的环境配置
         */
        public static String getActiveProfile() {
            final String[] activeProfiles = getActiveProfiles();
            if (activeProfiles != null || activeProfiles.length > 0) {
                return activeProfiles[0];
            }
            return null;
        }
    }
    -----------------------有任何问题可以在评论区评论,也可以私信我,我看到的话会进行回复,欢迎大家指教------------------------ (蓝奏云官网有些地址失效了,需要把请求地址lanzous改成lanzoux才可以)
  • 相关阅读:
    silverlight与CSLA的快速应用01序
    oracle常用的时间格式转换
    实现打印从数字1到5,非常规方法
    Java学习笔记之数据结构中的树
    Java探究心得之三元运算符
    Java学习心得之各种小算法
    深入Java核心 Java内存分配原理(转)
    java中继承与初始化顺序
    jsp 获取表单传过来的参数值含有中文字符
    转:父类私有变量是否被子类继承详细解说(答案:内存中存在,但sun公司定义为不继承)
  • 原文地址:https://www.cnblogs.com/pxblog/p/15065785.html
Copyright © 2011-2022 走看看