最近发现一个蛮好玩的类 ApplicationContextAware
可以用来很方的获取spring容器中的类和验证之前关于spring的一些知识
上代码
package com.pobo.liang.ws.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; /** * spring上下文配置 * */ @Component public class SpringContextUtil implements ApplicationContextAware { private static Logger logger = LoggerFactory.getLogger(SpringContextUtil.class); private static ApplicationContext applicationContext = null; public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringContextUtil.applicationContext = applicationContext; } public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 注意 bean name默认 = 类名(首字母小写) * 例如: A8sClusterDao = getBean("k8sClusterDao") * * @param name * @return * @throws BeansException */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } public static <T> T getBean(String name, Class<T> clazz) throws BeansException { return (T) applicationContext.getBean(name); } public static <T> T getBean(Class<T> clazz) throws BeansException { return applicationContext.getBean(clazz); } public static boolean containsBean(String name) { return applicationContext.containsBean(name); } public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return applicationContext.isSingleton(name); } }