1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package cn.iocoder.dashboard.util.sping;
- 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;
- @Component
- public class SpringBeanUtil implements ApplicationContextAware {
- /**
- * Spring context
- */
- private static ApplicationContext applicationContext = null;
- public void setApplicationContext(ApplicationContext context) throws BeansException {
- if (applicationContext == null) {
- applicationContext = context;
- }
- }
- public static ApplicationContext getApplicationContext() {
- return applicationContext;
- }
- public static void setAppCtx(ApplicationContext webAppCtx) {
- if (webAppCtx != null) {
- applicationContext = webAppCtx;
- }
- }
- /**
- * 拿到ApplicationContext对象实例后就可以手动获取Bean的注入实例对象
- */
- public static <T> T getBean(Class<T> clazz) {
- return getApplicationContext() == null ? null : getApplicationContext().getBean(clazz);
- }
- public static <T> T getBean(String name, Class<T> clazz) throws ClassNotFoundException {
- return getApplicationContext() == null ? null : getApplicationContext() .getBean(name, clazz);
- }
- public static final Object getBean(String beanName) {
- return getApplicationContext() == null ? null : getApplicationContext() .getBean(beanName);
- }
- public static final Object getBean(String beanName, String className) throws ClassNotFoundException {
- Class<?> clz = Class.forName(className);
- return getApplicationContext() == null ? null : getApplicationContext() .getBean(beanName, clz.getClass());
- }
- public static boolean containsBean(String name) {
- return getApplicationContext() == null ? null : getApplicationContext() .containsBean(name);
- }
- public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
- return getApplicationContext() == null ? null : getApplicationContext() .isSingleton(name);
- }
- public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
- return getApplicationContext() == null ? null : getApplicationContext() .getType(name);
- }
- public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
- return getApplicationContext() == null ? null : getApplicationContext() .getAliases(name);
- }
- }
|