1. 程式人生 > >SpringBoot中其他普通類呼叫Spring管理的Service、dao等bean

SpringBoot中其他普通類呼叫Spring管理的Service、dao等bean

在springboot的使用中,有時需要在其他的普通類中呼叫託管給spring的dao或者service,從而去操作資料庫。網上大多數的資料都是說新增一些註解什麼的,但是這都是不行的。 

 舉個使用情景:比如在伺服器在於硬體或者客戶端之間進行Socket通訊時,那麼如果說伺服器收到了一條訊息,需要去操作資料庫的話,怎麼去呼叫Service或者dao去操作資料庫呢?下面來看我給出的解決辦法:

 (1)首先需要新建一個類,實現 ApplicationContextAware 介面。

@Component  
public class SpringUtils implements ApplicationContextAware {  
 
    private static ApplicationContext applicationContext = null;  
 
    @Override  
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {  
        if(SpringUtils.applicationContext == null){  
            SpringUtils.applicationContext  = applicationContext;  
        }  
    }  
 
 
    //獲取applicationContext  
    public static ApplicationContext getApplicationContext() {  
        return applicationContext;  
    }  
 
    //通過name獲取 Bean.  
    public static Object getBean(String name){  
        return getApplicationContext().getBean(name);  
    }  
 
    //通過class獲取Bean.  
    public static <T> T getBean(Class<T> clazz){  
        return getApplicationContext().getBean(clazz);  
    }  
 
    //通過name,以及Clazz返回指定的Bean  
    public static <T> T getBean(String name,Class<T> clazz){  
        return getApplicationContext().getBean(name, clazz);  
    }  
 
}  


 (2)在通訊類中獲取ApplicationContext物件,然後去獲取需要的service 或者 dao。

 然後就可以直接呼叫了。


--------------------- 
作者:嚴少來也 
來源:CSDN 
原文:https://blog.csdn.net/yft_android/article/details/79166793 
版權宣告:本文為博主原創文章,轉載請附上博文連結!