• SpringBoot中ApplicationContextAware获取上下文


    springboot中ApplicationContextAware获取上下文

    package com.system.yunjie.cms.ms.member;

    import com.system.yunjie.cms.common.common.interceptor.ParamInterceptor;
    import com.system.yunjie.cms.common.common.interceptor.InterceptorConfig;
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.NoSuchBeanDefinitionException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;

    public class SpringUtils implements ApplicationContextAware {
    private static ApplicationContext applicationContext = null;

    public SpringUtils() {
    }

    public void setApplicationContext(ApplicationContext arg0) throws BeansException {
    if (applicationContext == null) {
    applicationContext = arg0;
    }

    }

    public static ApplicationContext getApplicationContext() {
    return applicationContext;
    }

    public static void setAppCtx(ApplicationContext webAppCtx) {
    if (webAppCtx != null) {
    applicationContext = webAppCtx;
    }
    }

    /**
    * 拿到ApplicationContext对象实例后就可以手动获取Bean的注入实例对象
    */
    public static <T> T getBean(Class<T> clazz) {
    return getApplicationContext().getBean(clazz);
    }

    public static <T> T getBean(String name, Class<T> clazz) throws ClassNotFoundException {
    return getApplicationContext().getBean(name, clazz);
    }

    public static final Object getBean(String beanName) {
    return getApplicationContext().getBean(beanName);
    }

    public static final Object getBean(String beanName, String className) throws ClassNotFoundException {
    Class clz = Class.forName(className);
    return getApplicationContext().getBean(beanName, clz.getClass());
    }

    public static boolean containsBean(String name) {
    return getApplicationContext().containsBean(name);
    }

    public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
    return getApplicationContext().isSingleton(name);
    }

    public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
    return getApplicationContext().getType(name);
    }

    public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
    return getApplicationContext().getAliases(name);
    }

    public static void main(String[] args) {
    /**
    * springboot普通类获取spring容器中的bean
    *
    *User UserDao UserImpl,其中UserImpl中有一个获取User列表的方法getUserList
    * 测试方法:
    * 测试在springboot中根据UserImpl的Class对象调用getUserList方法获取用户列表数据
    */
    // ParamInterceptor paramInterceptor1 = SpringUtils.getBean(ParamInterceptor.class);
    // System.out.println("------------------------" + paramInterceptor1);
    // ParamInterceptor paramInterceptor2 = SpringUtils.getBean(InterceptorConfig.class).getParamInterceptor();
    // System.out.println("------------------------" + paramInterceptor2);

    // Map param = new HashMap<String,Object>();
    // param.put("name","Tom");
    // List<User> listUser=SpringUtil.getBean(UserImpl.class).getClass()
    // .getDeclaredMethod("getUserList", Map.class)
    // .invoke(UserImpl.class,param);

    }
    }

  • 相关阅读:
    HTTP Header 详解
    面试题----网页/应用访问慢突然变慢,如何定位问题
    PHP实现斐波那契数列
    常见的HTTP返回状态值
    通过实例理解单列索引、多列索引以及最左前缀原则
    Btree索引和Hash索引
    遍历和删除文件夹
    面试题之----禁掉cookie的session使用方案
    面试题之----写个函数来解决多线程同时读写一个文件的问题
    heredoc
  • 原文地址:https://www.cnblogs.com/liuxm2017/p/14178021.html
Copyright © 2020-2023  润新知