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; } }
.
