Spring 上下文操作工具类 ContextUtils
ContextUtils.java
package com.java.config; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; /** * 对Spring容器进行各种上下文操作的工具类 * <p> * 该工具类必须声明为Spring 容器里的一个Bean对象,否则无法自动注入ApplicationContext对象 * <p> * 可使用@Component注解实例化,注意要开启包扫描并且所在包路径能被扫描到 * * @author Logan * @createDate 2019-02-09 * */ @Component public class ContextUtils implements ApplicationContextAware { private static ApplicationContext context; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { context = applicationContext; } /** * 根据Bean名称获取Bean对象 * * @param name Bean名称 * @return 对应名称的Bean对象 */ public static Object getBean(String name) { return context.getBean(name); } /** * 根据Bean的类型获取对应的Bean * * @param requiredType Bean类型 * @return 对应类型的Bean对象 */ public static <T> T getBean(Class<T> requiredType) { return context.getBean(requiredType); } /** * 根据Bean名称获取指定类型的Bean对象 * * @param name Bean名称 * @param requiredType Bean类型(可为空) * @return 获取对应Bean名称的指定类型Bean对象 */ public static <T> T getBean(String name, Class<T> requiredType) { return context.getBean(name, requiredType); } /** * 判断是否包含对应名称的Bean对象 * * @param name Bean名称 * @return 包含:返回true,否则返回false。 */ public static boolean containsBean(String name) { return context.containsBean(name); } /** * 获取对应Bean名称的类型 * * @param name Bean名称 * @return 返回对应的Bean类型 */ public static Class<?> getType(String name) { return context.getType(name); } /** * 获取上下文对象,可进行各种Spring的上下文操作 * * @return Spring上下文对象 */ public static ApplicationContext getContext() { return context; } }
.