package com.ks.common.utils;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* @author Mr.Zheng
* @program: ks-platform
* @description: 从Spring IOC容器中获取Bean对象
* @date 2020-05-28 09:36
*/
@Log4j2
@Component("beanHeader")
public class BeanHeader implements ApplicationContextAware {
/**上下文对象*/
private static ApplicationContext applicationContext;
/**
* 实现ApplicationContextAware接口的回调方法,注入上下文对象
*
* @param applicationContext
* @throws BeansException
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
BeanHeader.applicationContext = applicationContext;
}
/**
* 获取上下文对象
*
* @return applicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 判断上下文对象是否为空
*
* @return
*/
public static boolean checkApplicationContext() {
boolean flag = getApplicationContext() != null;
if (!flag) {
log.error("applicaitonContext未注入,实现ApplicationContextAware的类必须被spring管理");
}
return flag;
}
/**
* 根据name获取bean
*
* @param name
* @param <T>
* @return
*/
public static <T> T getBean(String name) {
if (checkApplicationContext()) {
return (T) getApplicationContext().getBean(name);
} else {
return null;
}
}
/**
* 根据class 获取bean
*
* @param clazz
* @param <T>
* @return
*/
public static <T> T getBean(Class<T> clazz) {
if (checkApplicationContext()) {
return getApplicationContext().getBean(clazz);
} else {
return null;
}
}
/**
* 根据name,以及Clazz返回指定的Bean
*
* @param name
* @param clazz
* @param <T>
* @return
*/
public static <T> T getBean(String name, Class<T> clazz) {
if (checkApplicationContext()) {
return getApplicationContext().getBean(name, clazz);
} else {
return null;
}
}
}
02-22
1355
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-29
1182
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交