`
xo_tobacoo
  • 浏览: 384535 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

获取spring上下文

阅读更多

问题:我们想在自己程序的任一地方获取由spring管理的bean

1)

ServletContext context = arg0.getSession().getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
yourService = (YourService)ctx.getBean("yourService");

 

2)可以实现BeanFactoryAware接口,实现BeanFactoryAware 接口的Bean类,在依赖关系设定完成后,初始化方法之前,Spring容器将会注入BeanFactory的实例,你可以通过这个 BeanFactory的实例获取其他的bean,不过这样你的bean就和spring耦合到一块了。

我们既然可以通过set来拿到我们要的对象,为什么还要用这个beanFactory呢,道理很简单,因为有些情况是需要 动态的去获取对象的,比如说我有10个银行的处理对象,他们都继承了我的BankService对象,但是具体处理的时候要哪家银行的对象呢?这个依赖于 用户的选择。你可以注入10个BankService实例,然后用if --else来搞,不过那样太坨了。每增加一家银行你都需要改代码。
通过beanFactory的话,那就一行代码搞定,只要给beanName就OK了,动点脑筋吧beanName配置的有规律点,然后根据用户的银行选择,凑出个beanName,大功告成了!

<?xmlversion="1.0"encoding="gb2312"?>
<!--指定Spring 配置文件的dtd>
<!DOCTYPE beans PUBLIC"-//SPRiNG//DTDBEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<!--Spring配置文件的根元素-->
<beans>
<!配置 BeanFactoryAwarebean-->
<bean id="chinese" class="lee.Chinese"/></beans>

 将代码中

public class BeanFactoryAnywhere implements BeanFactoryAware {
	public static  BeanFactory beanFactory;
	@Override
	public void setBeanFactory(BeanFactory arg0) throws BeansException {
		BeanFactoryAnywhere.beanFactory=arg0;

	}

}
 
分享到:
评论

相关推荐

    通过Spring上下文获取bean的实例对象

    通过Spring上下文获取bean的实例对象

    springmvc spring 两套上下文问题

    NULL 博文链接:https://yuhuiblog695685688425687986842568269.iteye.com/blog/2423933

    如何获得spring上下文的方法总结

    主要介绍了如何获得spring上下文的方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Spring 应用上下文获取 Bean 的常用姿势实例总结

    主要介绍了Spring 应用上下文获取 Bean,结合实例形式总结分析了Spring 应用上下文获取 Bean的实现方法与操作注意事项,需要的朋友可以参考下

    详解在SpringBoot应用中获取应用上下文方法

    本篇文章主要介绍了详解在SpringBoot应用中获取应用上下文方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

    iSenninha#jianShuRecord#Spring获取运行时上下文1

    1.继承ApplicationContextAware 2.代码如下 3.记得要把这个工具类加入到Spring的扫描路径下,这样才能在初始化时注入 4.使用方法

    springboot 使用上下文获取bean

    主要介绍了springboot 使用上下文获取bean,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    在Spring异步调用中传递上下文的方法

    主要给大家介绍了关于如何在Spring异步调用中传递上下文的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    利用spring的ApplicationContext在程序中唤醒quartz的job

    NULL 博文链接:https://dolphin-ygj.iteye.com/blog/368874

    Spring与Web环境集成1

    1.1 ApplicationContext应用上下文获取方式 1.2 Spring提供获取应用上下文的工具 1.4 配置ContextLoaderListen

    Spring Boot 集成 MinIO(分布式对象存储系统)

    在手写MinIO 工具类的过程中会摘取整体框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:IOC、AOP、Bean生命周期、上下文、作用域、资源处理等内容实现。 适合人群:具备一定编程基础,工作1-3年的研发人员...

    使用spring oauth2框架获取当前登录用户信息的实现代码

    主要介绍了使用spring oauth2框架获取当前登录用户信息的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    Spring攻略(第二版 中文高清版).part1

    13.4 管理集成测试中的应用上下文 520 13.4.1 问题 520 13.4.2 解决方案 520 13.4.3 工作原理 521 13.5 向集成测试注入测试夹具 526 13.5.1 问题 526 13.5.2 解决方案 526 13.5.3 工作原理 527 13.6...

    Spring中文帮助文档

    2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)...

    simplest-kie-spring-app:史上最简单的 Kie Spring 应用

    最简单的 kie-spring-app 史上最简单的 Kie Spring 应用 它使用 Spring 进行 KieBase 配置并触发一条规则,在控制台中打印 Hello World。... 我们从 Spring 上下文中获取 ksession bean 并使其执行所有规则。

    Spring API

    2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)...

    spring in action英文版

     2.1.2 使用应用上下文  2.1.3 Bean的生命  2.2 基本装配  2.2.1 使用XML装配  2.2.2 添加一个Bean  2.2.3 通过Set方法注入依赖  2.2.4 通过构造函数注入依赖  2.3 自动装配  2.3.1 处理...

    Spring攻略(第二版 中文高清版).part2

    13.4 管理集成测试中的应用上下文 520 13.4.1 问题 520 13.4.2 解决方案 520 13.4.3 工作原理 521 13.5 向集成测试注入测试夹具 526 13.5.1 问题 526 13.5.2 解决方案 526 13.5.3 工作原理 527 13.6...

    spring-best-practics:Spring最佳实践演示案例

    兼容的Spring Cloud版本为Greenwich,版本对照参考概要如何配置拦截器:拦截器,过滤器,@ RestControllerAdvice bean的初始化:InitializingBean接口,@ conditionXXX注解如何获取applicationContext上下文:...

    Spring in Action(第2版)中文版

    2.1.2使用应用上下文 2.1.3bean的生命 2.2创建bean 2.2.1声明一个简单的bean 2.2.2通过构造函数注入 2.3注入bean属性 2.3.1注入简单的数值 2.3.2使用其他的bean 2.3.3装配集合 2.3.4装配空值 2.4自动装配 ...

Global site tag (gtag.js) - Google Analytics