You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.2 KiB
40 lines
1.2 KiB
package com.bx.common.util;
|
|
|
|
import org.springframework.beans.BeansException;
|
|
import org.springframework.context.ApplicationContext;
|
|
import org.springframework.context.ApplicationContextAware;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
@Component
|
|
public class SpringContextHolder implements ApplicationContextAware {
|
|
|
|
private static ApplicationContext applicationContext;
|
|
|
|
@Override
|
|
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
|
SpringContextHolder.applicationContext = applicationContext;
|
|
}
|
|
|
|
public static ApplicationContext getApplicationContext() {
|
|
assertApplicationContext();
|
|
return applicationContext;
|
|
}
|
|
|
|
public static <T> T getBean(String beanName) {
|
|
assertApplicationContext();
|
|
return (T) applicationContext.getBean(beanName);
|
|
}
|
|
|
|
public static <T> T getBean(Class<T> requiredType) {
|
|
assertApplicationContext();
|
|
return applicationContext.getBean(requiredType);
|
|
}
|
|
|
|
private static void assertApplicationContext() {
|
|
if (SpringContextHolder.applicationContext == null) {
|
|
throw new RuntimeException("applicaitonContext属性为null,请检查是否注入了SpringContextHolder!");
|
|
}
|
|
}
|
|
|
|
}
|
|
|