您的位置:首页 > 编程语言 > Java开发

java-在应用中获取spring定义的bean

2013-02-22 21:37 495 查看
因为写了些bean作为quartz的任务用spring配置了,但有些时候需要在别的类中使用这些bean,没有太仔细去研究spring,依稀记得有个getBean,到网上g了一把,发现方法不止一种,选了一种最简单的方法: 主要思路是使用静态变量保存全局的应用上下文,在spring框架中配置,框架加载时会把全局上下文实例传入。 1、新建继承ApplicationContextAware的类:



package com.test;




import org.springframework.beans.BeansException;


import org.springframework.context.ApplicationContext;


import org.springframework.context.ApplicationContextAware;




public class SpringUtil implements ApplicationContextAware {


private static ApplicationContext applicationContext;


@Override


public void setApplicationContext(ApplicationContext arg0)


throws BeansException {


SpringUtil.applicationContext = arg0;


}


public static Object getBean(String name){


return applicationContext.getBean(name);


}


}



2、在框架中配置:

<bean id="spring" class="com.test.SpringUtil"> 3、最后就是使用了:

com.test.bsn.Job bsnjob = (com.test.bsn.Job)SpringUtil.getBean("bsnws");


bsnjob.doQueryBalance(); 上面"bsnws"是配置在spring框架中的bean,直接调用SpringUtil的静态函数即可获得。 此方法非常简单,但是把spring整个框架暴露在外,有一些风险。而且要在普通类中获取框架定义的bean,必然要依赖框架。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: