首页>代码>Spring Boot简单而又强大的AOP异步日志注解系统>/logAnnotate/src/main/java/com/dai/config/SpringBeanFactoryUtils.java
package com.dai.config;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

/**
 * <p>--spring加载时候,注入的bean 的顺序是 先是Lisener 然后是 Filter 最后是 Servlet</p>
 * <p>--因此如果在过滤器或者监听器里面注入service等会是空,因为在过滤器或者监听器加载的时候</p>
 * <p>--Servlet,service等还没有加载,因此是空的,所以就手动注入</p>
 * <p>2019-12-08 15:34</p>
 *
 * @author Dai Yuanchuan
 **/
@Component
public class SpringBeanFactoryUtils implements ApplicationContextAware {

    private static ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext)
            throws BeansException {
        if (SpringBeanFactoryUtils.applicationContext == null) {
            SpringBeanFactoryUtils.applicationContext = applicationContext;
        }

    }

    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    /**
     * 根据名称(@Resource 注解)
     *
     * @param name
     * @return
     */
    public static Object getBean(String name) {
        return getApplicationContext().getBean(name);
    }

    /**
     * 根据类型(@Autowired)
     *
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T getBean(Class<T> clazz) {
        return getApplicationContext().getBean(clazz);
    }

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

}
最近下载更多
finklcool 2022年6月6日
暂无贡献等级
crosa_Don  LV18 2022年6月2日
1234mama  LV19 2022年4月5日
黑手疯狂  LV5 2022年1月17日
huaua7676  LV30 2021年11月18日
zzzzzzzzhasdas  LV13 2021年11月9日
尹恒yingying  LV18 2021年10月22日
ma406805131  LV15 2021年3月11日
zlylongyue  LV1 2021年2月1日
zhugc111  LV10 2020年12月31日
最近浏览更多
fengst 6月18日
暂无贡献等级
Aban-beautiful 5月13日
暂无贡献等级
3334004690  LV10 3月7日
1358849392  LV21 1月22日
fellowfun  LV12 2023年11月15日
漫步的海星  LV4 2023年9月21日
cwb6357123  LV6 2023年9月21日
skook7  LV2 2023年8月31日
1761434639  LV1 2023年7月2日
呵呵哈哈哈  LV10 2022年9月8日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友