普通java類獲取 spring中的bean方法


編寫一個工具類

 實現spring 的ApplicationContextAware接口

代碼如下:

 1 package com.xnh.web.utils;
 2 
 3 import org.springframework.beans.BeansException;
 4 import org.springframework.context.ApplicationContext;
 5 import org.springframework.context.ApplicationContextAware;
 6 /**
 7  * 
 8  * @author Kylin
 9  *
10  */
11 public class ApplicationUtil implements ApplicationContextAware{
12     private static ApplicationContext applicationContext;  
13     @Override
14     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
15         ApplicationUtil.applicationContext = applicationContext;
16     }
17     public static Object getBean(String name){
18         return applicationContext.getBean(name);
19     }
20 }

然后需要在application中把把org.springframework.context.ApplicationContext作為屬性注入給類

其實只需要這樣寫就可以如下:

1 <bean id="app" class="com.xnh.web.utils.ApplicationUtil">
2 </bean>

這樣子就是被注入進去了

運行的時候只需要加載你的applicationContext.xml

*普通java類main方法這樣調用

new ClassPathXmlApplicationContext("applicationContext.xml");

ApplicationUtil.getBean("rssService");

*web工程直接調用

ApplicationUtil.getBean("rssService");

 

就大功告成了,如果按我的方法不成功,請看看是不是沒有加載applicationContext.xml,或者你想getbean的方法沒有在xml里面配置

據我測試沒有在xml配置而僅僅使用注解貌似是不成功的

有問題留言哦

 


免責聲明!

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



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