1. 程式人生 > >springboot獲取spring容器裡面的bean進行呼叫

springboot獲取spring容器裡面的bean進行呼叫

業務場景:springcloud中的service端中,activity流程中一個流程發起之後由activity框架裡面的監聽一個節點結束,到另外一個節點發起。在這過程中,需要繼承activity裡面的介面然後呼叫service裡面的查詢方法。由於這個類沒有初始化在spring容器裡面進行bean的管理,所以注入service裡面的方法注入不進來。這個時候就需要去獲取這個具體service在spring容器裡面bean的地址去獲取才能去呼叫service裡面的方法。
具體實現方法:


public class SpringUtil implements ApplicationContextAware
{
private static Logger logger = LoggerFactory.getLogger(SpringUtil.class); private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if(SpringUtil.applicationContext == null
) { SpringUtil.applicationContext = applicationContext; } logger.info("ApplicationContext配置成功,applicationContext物件:"+SpringUtil.applicationContext); } public static ApplicationContext getApplicationContext() { return applicationContext; } public
static Object getBean(String name) { return getApplicationContext().getBean(name); } public static <T> T getBean(Class<T> clazz) { return getApplicationContext().getBean(clazz); } public static <T> T getBean(String name,Class<T> clazz) { return getApplicationContext().getBean(name,clazz); } }