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,提供了三种方式实例化Bean,具有一定的参考价值,有兴趣的可以了解一下。
spring入门学习-3、Bean装配(XML).pdf
Spring是什么呢?首先它是一个开源的项目,而且目前非常活跃...它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transaction Management
spring-aop-4.0.0.RELEASE工具类,用于spring注解装配bean
spring-beans:Bean工厂与装配 spring-context:上下文,即IOC容器 spring-context-support:对IOC的扩展,以及IOC子容器 spring-context-indexer:类管理组件和Classpath扫描 spring-expression:表达式语句 切面编程: ...
springframework 是sping 里面的一个开源框架...它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transaction Management,等等......
1.4 装配Bean-自动装配(重要!) Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。 自动装配(autowiring):Spring自动满足bean之间的依赖。 1 ...
NULL 博文链接:https://364232252.iteye.com/blog/2369853
它们被Spring IOC容器初始化,装配,和管理。这些beans通过容器中配置的元数据创建。比如,以XML文件中<bean/> 的形式定义。Spring 框架定义的beans都是单件beans。在bean tag中有个属性”singleton”,如果它被赋为...
博客地址:https://blog.csdn.net/u010476739/article/details/76732201 spring装配bean的方式实例
spring Bean 自动装配(xml) spring Bean 自动装配(注释)@Atutowired Spring自定义事件(spring自定义事件) 春天@Profile Spring Profile XML 配置 spring-aop 初识spring aop AOP(注解) 弹簧 mvc 1.第...
目的:Spring容器已经成功获取了UserController实例,并通过调用实例中的方法执行了各层中的输出语句。 运行结果为: User [id=1, name=张三, password=123] userDao say hello world! UserService say hello world ...
主要介绍了JSP Spring 自动化装配Bean实例详解的相关资料,需要的朋友可以参考下
主要给大家介绍了关于spring装配bean的3种方式,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
有时候根据需求会动态的装配bean,注入到Controller中,现在提供两种方式: 一、xml文件配置方式,ApplicationContext.xml 二、@PostConstruct注解方式
设置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的三种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
ean的自动装配,有4种 (1)no:不做任何操作 (2)byName:根据属性 名 自动装配,设值注入 <bean id="xxx" class="xxx" ></bean> (3)byType:根据属性 类型 自动装配,相同类型多个会抛出异常,设值注入 <bean...
主要介绍了spring在IoC容器中装配Bean详解,具有一定借鉴价值,需要的朋友可以参考下
今天小编就为大家分享一篇关于在Spring中自动装配Bean的属性,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧