靜態(tài)方法方法這種無(wú)法注入,然而此方法必須是靜態(tài)以供其他方法直接調(diào)用;若其他的地方已經(jīng)注入捐顷,可以再I(mǎi)oc中直接獲取使用:
package com.cscs.info.util;
/**
* @Classname a
* @Description TODO
* @Date 2019/5/9 16:12
* @Created by lichao
*/
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* @Description: Spring 上下文工具, 可用于獲取spring 容器中的Bean
* @author: zongf
* @date: 2018-12-26 10:34
*/
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextUtil.applicationContext = applicationContext;
}
/**
* @Description: 獲取spring容器中的bean,通過(guò)bean名稱(chēng)獲取
* @param beanName bean名稱(chēng)
* @return: Object 返回Object,需要做強(qiáng)制類(lèi)型轉(zhuǎn)換
* @author: zongf
* @time: 2018-12-26 10:45:07
*/
public static Object getBean(String beanName){
return applicationContext.getBean(beanName);
}
/**
* @Description: 獲取spring容器中的bean, 通過(guò)bean類(lèi)型獲取
* @param beanClass bean 類(lèi)型
* @return: T 返回指定類(lèi)型的bean實(shí)例
* @author: zongf
* @time: 2018-12-26 10:46:31
*/
public static <T> T getBean(Class<T> beanClass) {
return applicationContext.getBean(beanClass);
}
/**
* @Description: 獲取spring容器中的bean, 通過(guò)bean名稱(chēng)和bean類(lèi)型精確獲取
* @param beanName bean 名稱(chēng)
* @param beanClass bean 類(lèi)型
* @return: T 返回指定類(lèi)型的bean實(shí)例
* @author: zongf
* @time: 2018-12-26 10:47:45
*/
public static <T> T getBean(String beanName, Class<T> beanClass){
return applicationContext.getBean(beanName,beanClass);
}
}