普通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配置而仅仅使用注解貌似是不成功的

有问题留言哦

 

posted @ 2013-04-01 22:57  jiang nan  阅读(31816)  评论(0编辑  收藏  举报