`
uu011
  • 浏览: 30727 次
  • 性别: 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框架(spring-framework-5.2.6.RELEASE)的jar包

    Beans模块则实现了bean的定义、实例化、装配和管理。 2. **Data Access/Integration**:这个模块支持数据访问,包括JDBC、ORM(Object-Relational Mapping)、OXM(Object-XML Mapping)和JMS(Java Message ...

    spring-aop-3.0.xsd spring-beans-3.0 spring-context-3.0.xsd spring-mvc-3.1.xsd

    `spring-beans-3.0.xsd` 文件定义了 Spring 容器如何读取并解析 XML 配置文件,来实例化、装配和管理 beans。在这个文件中,你可以定义 bean 的 id、class、属性、依赖注入等。通过版本号 3.0,我们可以看出这是针对...

    spring-framework-5.1.8.RELEASE.zip

    同时,Spring还支持注解驱动的开发,比如@Autowired用于自动装配依赖,@Service、@Repository和@Controller用于标记服务、数据访问和控制器类。 在实际开发中,Spring Framework还与Spring Boot结合使用,后者基于...

    官方spring-framework-4.3.13.RELEASE完整包

    Spring框架允许开发者通过XML配置来装配bean,这些XML配置文件遵循特定的schema。此压缩包提供了所有schema文件,比如`beans.xsd`、`context.xsd`等,它们定义了如何使用XML进行bean的声明、属性的设置以及依赖关系...

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

    以上就是Spring使用注解方式装配Bean的基本过程和关键注解的介绍。通过这种方式,我们可以轻松地管理Bean的生命周期,实现依赖注入,以及对Bean的其他配置,极大地提高了代码的可维护性和灵活性。在实际项目中,结合...

    spring-framework-4.3.29.RELEASE.zip

    - **更好的类型安全**:增强了类型安全的Bean装配,减少了因类型不匹配导致的运行时错误。 - **反应式编程支持**:Spring 4.3引入了对Reactor的支持,为未来的反应式编程模式打下基础。 - **HTTP/2支持**:Spring...

    Spring-3.0.xsd

    首先,Spring-3.0.xsd是Spring XML配置的基石,它定义了一系列元素和属性,使得开发者能够以声明式的方式定义Bean、依赖注入、AOP代理、事务管理等核心功能。在Spring 3.0版本中,为了提升可读性和可维护性,引入了...

    spring-framework-4.2.0.RELEASE官方完整包加官方文档

    此外,Spring的容器是整个框架的核心,它管理所有bean的生命周期。在4.2.0版本中,容器的启动速度得到了提升,同时增强了对 Profiles 的支持,使得环境特定的配置变得更加容易。 文档方面,`spring-framework-4.2.0...

    Spring--2.Spring 中的 Bean 配置-4

    在Spring框架中,Bean配置是核心概念之一,它关乎到对象的创建、初始化、装配以及管理。本节我们将深入探讨Spring中的Bean配置,主要关注如何通过XML、注解以及Java配置方式来管理Bean。 首先,让我们从XML配置说起...

    spring-framework-5.2.0.RELEASE-master.zip

    通过阅读`@Autowired`、`@PostConstruct`、`@PreDestroy`等注解的实现,我们可以了解到Spring如何进行自动装配。同时,对于`BeanDefinition`、`BeanPostProcessor`等关键接口的注释,能帮助我们深入理解bean的生命...

    spring-context源码

    `spring-context`包含了强大的Spring表达式语言(SpEL),它允许在运行时对bean和属性进行动态查询和修改。SpEL可以用在注解的值、bean的属性绑定以及`ExpressionEvaluator`的表达式解析等多个场景。 综上所述,`...

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

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

    spring bean XML配置入门

    在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...

    spring-framework-2.5.6jar包

    在2.5.6版本中,DI通过@Autowired注解实现,允许自动装配bean的依赖关系,减少了手动配置的工作量。同时,BeanFactory和ApplicationContext接口是Spring容器的基石,它们管理着对象的生命周期和依赖关系。 其次,...

    spring-framework-3.2.5.RELEASE.rar

    - `spring-beans.jar`:实现了bean的定义、创建、装配和管理。 - `spring-context.jar`:扩展了`spring-core`,提供了与企业服务集成的能力,如事件、国际化、资源访问等。 - `spring-aop.jar`:实现了面向切面...

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

    6. **Autowiring-mode**:定义了如何自动装配Bean。Spring支持按类型、按名称等多种自动装配模式。 7. **Lazy-initialization-mode**:懒加载模式,表示Bean是否在容器启动时立即创建,还是在首次请求时创建。 8. ...

    Spring4--2.bean注解和AOP

    3. `@Autowired`:这个注解用于自动装配Bean的依赖。Spring会根据类型或名称找到合适的Bean进行注入。例如: ```java @Service public class MyService { @Autowired private MyDependency myDependency; // ... ...

    springIOC核心组件分析.vsdx

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

    spring-framework-1.0-m1.zip源码

    2. 控制反转:IoC是指应用程序的控制权从应用程序本身转移到框架,Spring容器根据配置文件动态地创建、装配和管理对象。这种设计模式使得组件之间解耦,降低了系统复杂度。 三、核心组件分析 1. ...

Global site tag (gtag.js) - Google Analytics