zoukankan      html  css  js  c++  java
  • springboot中将非service类交给spring托管

    使用一个util类 SpringUtil ,这个类放在和springboot启动类同包下。

    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;
    
    
    /**
     * 普通类调用Spring bean对象:
     * 说明:
     * 1、此类需要放到App.java同包或者子包下才能被扫描,否则失效。
     * @author Administrator
     */
    
    @Component
    public class SpringUtil implements ApplicationContextAware{
    
        private static ApplicationContext applicationContext = null;
    
    
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            if(SpringUtil.applicationContext == null){
                SpringUtil.applicationContext  = applicationContext;
            }
            System.out.println("---------------------------------------------------------------------");
            System.out.println("---------------------------------------------------------------------");
            System.out.println("---------------com.example.order.util.SpringUtil------------------------------------------------------");
            System.out.println("========ApplicationContext配置成功,在普通类可以通过调用SpringUtils.getAppContext()获取applicationContext对象,applicationContext="+SpringUtil.applicationContext+"========");
            System.out.println("---------------------------------------------------------------------");
    
        }
    
        //获取applicationContext
        public static ApplicationContext getApplicationContext() {
            return applicationContext;
        }
    
        //通过name获取 Bean.
        public static Object getBean(String name){
            return getApplicationContext().getBean(name);
    
        }
    
        //通过class获取Bean.
        public static <T> T getBean(Class<T> clazz){
            return getApplicationContext().getBean(clazz);
        }
    
        //通过name,以及Clazz返回指定的Bean
        public static <T> T getBean(String name,Class<T> clazz){
            return getApplicationContext().getBean(name, clazz);
        }

    
    
    }

    Util类创建成功之后,
    在自己的类中使用
    ProgramTypeService programTypeService = (ProgramTypeService) SpringUtil.getBean("programTypeService");

    即可调用
  • 相关阅读:
    JavaScript条件判断和循环
    JavaScript数据类型详解
    Dockerfile使用
    让ie8、ie9支持媒体查询
    事件穿透
    判断是苹果手机还是安卓手机
    ES6中字符串的扩展
    ES6数组的扩展运算符
    let和const
    ES6中函数的扩展
  • 原文地址:https://www.cnblogs.com/zhq-blogs/p/8274274.html
Copyright © 2011-2022 走看看