普通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配置而仅仅使用注解貌似是不成功的
有问题留言哦
82604119 java 菜鸟群 多多学习 一起进步