欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

普通java类获取 spring中的bean方法

程序员文章站 2022-05-23 10:06:24
...

编写一个工具类

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

有问题留言哦

 

转载于:https://my.oschina.net/icoding/blog/632576