Springboot - 获得应用程序上下文ApplicationContext并构建工具类

Springboot - 获得应用程序上下文ApplicationContext并构建工具类


1.实现ApplicationContextAware接口

import com.simply.zuozuo.util.ApplicationContextUtils;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Component;

/**
 * @author Created by 谭健 on 2018/4/13 0013. 星期五. 11:29.
 * © All Rights Reserved.
 */

@Slf4j
@Component
@Data
public class ApplicationContextAwareImpl implements ApplicationContextAware {


    /**
     * 实现该接口用来初始化应用程序上下文
     * 该接口会在执行完毕@PostConstruct的方法后被执行
     * 

* 接着,会进行Mapper地址扫描并加载,就是RequestMapping中指定的那个路径 * * @param applicationContext 应用程序上下文 * @throws BeansException beans异常 */ @Override public void setApplicationContext(@Nullable ApplicationContext applicationContext) throws BeansException { log.info("应用程序上下文 : [{}]", "开始初始化"); ApplicationContextUtils.applicationContext = applicationContext; log.info("应用程序上下文 getId : [{}]", applicationContext.getId()); log.info("应用程序上下文 getApplicationName : [{}]", applicationContext.getApplicationName()); // log.info("应用程序上下文 getAutowireCapableBeanFactory : [{}]",applicationContext.getAutowireCapableBeanFactory()); // log.info("应用程序上下文 getDisplayName : [{}]",applicationContext.getDisplayName()); // log.info("应用程序上下文 getParent : [{}]",applicationContext.getParent()); log.info("应用程序上下文 getStartupDate : [{}]", applicationContext.getStartupDate()); // log.info("应用程序上下文 getEnvironment : [{}]",applicationContext.getEnvironment()); log.info("应用程序上下文 : [{}]", "初始化完成"); } }

2.构建工具类

import org.springframework.context.ApplicationContext;

/**
 * @author Created by 谭健 on 2018/4/13 0013. 星期五. 11:47.
 * © All Rights Reserved.
 */
public class ApplicationContextUtils {


    public static ApplicationContext applicationContext;

    /**
     * 通过名称获取bean
     */
    public static Object get(String name) {
        return applicationContext.getBean(name);
    }


    /**
     * 通过类型获取bean
     */
    public static Object get(Class clazz) {
        return applicationContext.getBean(clazz);
    }

    /**
     * 判断某个bean是不是存在
     */
    public static boolean has(String name) {
        return applicationContext.containsBean(name);
    }


}

你可能感兴趣的:(#,工具类,框架相关,-,SpringBoot体系)