Spring:在普通Java類中獲取由Spring所管理的Bean


  一般情況下,在使用SPRING注解的方式管理bean時,只能通過注解或者配置文件注入的方式獲取相應的bean。

  但是在某些特殊情況下,我們需要在一個普通的JAVA類中獲取由spring所管理的bean,下面是解決辦法之一:

  

第一步:創建一個類並讓其實現org.springframework.context.ApplicationContextAware接口,使Spring在啟動時注入ApplicationContext對象:

package com.hsoft.mss.common.utils;
  
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
  
public class MyApplicationContextUtil implements ApplicationContextAware { 
      
  private static ApplicationContext context;
     
  public void setApplicationContext(ApplicationContext contex) throws BeansException { 
        MyApplicationContextUtil.context=contex; 
  }

  public static ApplicationContext getContext(){
    return context;   } }

 

第二步:在spring配置文件中注冊上述bean,令服務器啟動時加載並將contex對象注入其中:

<bean class="com.hsoft.mss.common.utils.MyApplicationContextUtil"></bean> 

 

第三步:通過上述方法獲取重寫的contex對象,並通過spring所管理的bean名稱得到相應的對象,之后即可使用對象中的各種方法:

//獲取LcfwDao 對象
LcfwDao lcfwDao = (LcfwDao) MyApplicationContextUtil.getContext().getBean("lcfwDaoImpl"); 
//調用其中的方法
int count = lcfwDao.getCountById("18");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM