`
uu011
  • 浏览: 29261 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring-动态装配bean

    博客分类:
  • java
 
阅读更多
http://uu011.iteye.com/admin/blogs/new
spring-动态装配bean(2010-11-07 22:18:32)转载▼标签: 杂谈 分类: JavaEE 
动态装配
上面的装配都是我们在配置文件中进行配置,框架会加载配置文件,然后向它的工厂中加入对应的对象,我们通过getBean来获得对象,但这些对象都是事先定义好的,我们有时候要在程序中动态的加入对象.因为如果采用配置文件,我们要加入对象的话,还要重启服务,如果我们想要避免这一情况就得采用动态处理bean,包括:动态注入,动态删除;

动态注入
ApplicationContext ctx = (ApplicationContext) ActionContext.getContext().getApplication().get(

                         WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

DefaultListableBeanFactory acf = (DefaultListableBeanFactory) ctx

                  .getAutowireCapableBeanFactory();

先得到工厂.

XmlBeanFactory factory = new XmlBeanFactory(new FileSystemResource(

                  newFile));

再得到要加入的新bean所在的工厂.因为新的bean可能是在一个文件中描述的.所以可以通过这种方法来得到,当然如果有其他方式也可以,这里得到这个factory是为了方便下面得到它的定义:definition.

acf.registerBeanDefinition(beanId, factory.getMergedBeanDefinition(beanId));

再注入新的bean.这里要传入一个beanId就是我们以后要通过getBean(beanId)来得到对象中的beanId.另外还要一个该bean的definition.通过前面的factory中获得.

这样就动态注入了.

动态删除
ApplicationContext ctx = (ApplicationContext) ActionContext.getContext()             .getApplication().get(                 WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

DefaultListableBeanFactory acf = (DefaultListableBeanFactory) ctx.getAutowireCapableBeanFactory();

if(acf.containsBean(beanId)) {

    acf.removeBeanDefinition(beanId);

分享到:
评论

相关推荐

    详解Spring框架---IOC装配Bean

    本篇文章主要介绍了详解Spring框架---IOC装配Bean,提供了三种方式实例化Bean,具有一定的参考价值,有兴趣的可以了解一下。

    spring入门学习-3、Bean装配(XML).pdf

    spring入门学习-3、Bean装配(XML).pdf

    spring-framework-5.0.4.RELEASEspring-framework-5.0.4.RELEASE

    Spring是什么呢?首先它是一个开源的项目,而且目前非常活跃...它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transaction Management

    spring-aop-4.0.0.RELEASE

    spring-aop-4.0.0.RELEASE工具类,用于spring注解装配bean

    springIOC核心组件分析.vsdx

    spring-beans:Bean工厂与装配 spring-context:上下文,即IOC容器 spring-context-support:对IOC的扩展,以及IOC子容器 spring-context-indexer:类管理组件和Classpath扫描 spring-expression:表达式语句 切面编程: ...

    完整Spring框架,包含源码文档等 spring-5.2.9.RELEASE-dist.zip

    springframework 是sping 里面的一个开源框架...它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transaction Management,等等......

    基于框架的Web开发-装配Bean自动装配.doc

    1.4 装配Bean-自动装配(重要!) Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。 自动装配(autowiring):Spring自动满足bean之间的依赖。 1 ...

    day38 16-Spring的Bean的装配:注解的方式

    NULL 博文链接:https://364232252.iteye.com/blog/2369853

    spring-beans.zip

    它们被Spring IOC容器初始化,装配,和管理。这些beans通过容器中配置的元数据创建。比如,以XML文件中<bean/> 的形式定义。Spring 框架定义的beans都是单件beans。在bean tag中有个属性”singleton”,如果它被赋为...

    spring装配bean实例代码

    博客地址:https://blog.csdn.net/u010476739/article/details/76732201 spring装配bean的方式实例

    spring-basic:弹簧基础

    spring Bean 自动装配(xml) spring Bean 自动装配(注释)@Atutowired Spring自定义事件(spring自定义事件) 春天@Profile Spring Profile XML 配置 spring-aop 初识spring aop AOP(注解) 弹簧 mvc 1.第...

    Spring中的Bean的管理_Bean的装配方式_基于注解的装配_项目

    目的:Spring容器已经成功获取了UserController实例,并通过调用实例中的方法执行了各层中的输出语句。 运行结果为: User [id=1, name=张三, password=123] userDao say hello world! UserService say hello world ...

    JSP Spring 自动化装配Bean实例详解

    主要介绍了JSP Spring 自动化装配Bean实例详解的相关资料,需要的朋友可以参考下

    spring装配bean的3种方式总结

    主要给大家介绍了关于spring装配bean的3种方式,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    动态的装配bean,注入到Controller中

    有时候根据需求会动态的装配bean,注入到Controller中,现在提供两种方式: 一、xml文件配置方式,ApplicationContext.xml 二、@PostConstruct注解方式

    Spring-Reference_zh_CN(Spring中文参考手册)

    设置Bean使自动装配失效 3.3.7. 依赖检查 3.3.8. 方法注入 3.3.8.1. Lookup方法注入 3.3.8.2. 自定义方法的替代方案 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. 其他作用域 3.4.3.1....

    Spring的自动装配Bean的三种方式

    本篇文章主要介绍了 Spring的自动装配Bean的三种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    spring自动装配例子

    ean的自动装配,有4种 (1)no:不做任何操作 (2)byName:根据属性 名 自动装配,设值注入 <bean id="xxx" class="xxx" ></bean> (3)byType:根据属性 类型 自动装配,相同类型多个会抛出异常,设值注入 <bean...

    spring在IoC容器中装配Bean详解

    主要介绍了spring在IoC容器中装配Bean详解,具有一定借鉴价值,需要的朋友可以参考下

    在Spring中自动装配Bean的属性

    今天小编就为大家分享一篇关于在Spring中自动装配Bean的属性,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

Global site tag (gtag.js) - Google Analytics