`
jelly
  • 浏览: 300586 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

动态创建Spring Bean

阅读更多

Spring 2.0 增加了 BeanDefinitionBuilder ,通过 BeanDefinitionBuilder 可以动态的创建一个Applicatoin Context 而不需要使用XML。

 

GenericApplicationContext ctx = new GenericApplicationContext();

BeanDefinitionBuilder builderA = BeanDefinitionBuilder
   .rootBeanDefinition(BeanA.class)
    .addPropertyValue("name", "Joe");
ctx.registerBeanDefinition("bean-a", builderA.getBeanDefinition());
 
BeanDefinitionBuilder builderB = BeanDefinitionBuilder.rootBeanDefinition(BeanB.class)
   .addPropertyReference("refA", "bean-a");
ctx.registerBeanDefinition("bean-b", builderB.getBeanDefinition());
 
ctx.getBean("bean-b"); 

 

上面的例子动态创建了两个 bean 定义,第二个Bean 引用了第一个Bean。

分享到:
评论
1 楼 yvhiwssn 2011-03-21  
请问我如果将BeanDefinitionBuilder 动态的创建的Applicatoin Context
与我工程启动加载spring配置文件所产生的Application Context整到一块?

相关推荐

    Spring Bean重复执行两次(实例被构造两次)问题分析

    在Spring容器初始化时,它会根据配置加载Bean的定义,并根据需要创建Bean实例。Bean的生命周期大致分为以下几个阶段:构造、初始化、正常使用、销毁。如果一个Bean被创建了两次,那么可能是在构造或初始化阶段出现了...

    spring运行过程中动态注册bean

    在Spring框架中,动态注册Bean是一项非常实用的功能,它允许我们在应用运行时向Spring容器添加新的Bean定义。这种能力在很多场景下都是极其有用的,比如根据不同的环境配置加载不同的服务实现,或者在运行时根据某些...

    实例化Spring bean的两种工厂方法

    本篇将详细探讨两种工厂方法——实例工厂方法和静态工厂方法,用于创建Spring Bean。 首先,我们要理解Spring Bean的概念。Spring Bean是Spring IoC容器管理的对象,这些对象的生命周期、依赖关系以及初始化行为由...

    spring动态向容器中添加bean和删除指定bean.md

    spring动态向容器中添加bean和删除指定bean,不需要重启应用

    springboot 基于spring-kafka动态创建kafka消费者

    本文将详细探讨如何在Spring Boot项目中基于Spring Kafka动态创建Kafka消费者。 首先,了解Kafka基本概念:Kafka是一种分布式流处理平台,用于构建实时数据管道和流应用程序。它提供了高吞吐量、低延迟的消息传递,...

    Spring Boot如何动态创建Bean示例代码

    Spring Boot动态创建Bean示例代码详解 Spring Boot框架中提供了多种方式来创建Bean,今天我们就来学习其中的一种,即动态创建Bean。动态创建Bean可以根据特定的条件来决定是否创建Bean,这在实际开发中非常有用。 ...

    SpringBean 调用 事务 AOP

    本篇文章将深入探讨如何在Spring中通过Bean调用来应用事务AOP,并通过示例代码详细解释其配置和工作原理。 首先,Spring的事务管理是基于AOP实现的,它提供了声明式事务处理,允许开发者在不修改业务代码的情况下,...

    Spring 源码(14)Spring Bean 的创建过程(5).doc

    在Spring框架中,Bean的创建过程是一个复杂而精细的机制,涉及到多个步骤和接口的交互。在本篇中,我们将深入探讨Spring Bean的第五种创建方式,即通过反射进行创建,特别是利用`...

    普通类调用Spring bean对象

    6. **Spring EL(Expression Language)**:在某些情况下,我们可能需要动态地获取bean,这时可以使用Spring EL。例如,在`@Value`注解中,我们可以写表达式来获取bean的属性或方法。 通过以上方式,普通类能够灵活...

    Spring动态加载bean后调用实现方法解析

    Spring动态加载bean后调用实现方法解析 在 Spring 框架中,动态加载 bean 是一个非常实用的功能,特别是在我们需要在不改变原有程序结构的基础上添加新的 bean 的时候。通过使用 Spring 的 ...

    spring IOC反射装载bean

    总的来说,"spring IOC反射装载bean"是Spring框架的基础,它使得开发者可以专注于业务逻辑,而不必关心对象的创建和依赖关系的管理。通过XML配置或注解,Spring能够灵活地控制Bean的生命周期,从而提高代码的可测试...

    spring在@Bean注解中initMethod调用方法异步

    在Spring框架中,`@Bean`注解是一个关键的组件,用于声明一个方法将返回的对象作为Spring容器中的bean。在`@Bean`中定义`initMethod`属性,可以指定该bean初始化时需要调用的方法。当`initMethod`被设置为异步执行,...

    SpringBoot 获取spring bean方式.rar

    `@Lookup`注解用于在运行时动态创建Bean。当标记在方法上时,Spring会在运行时替换该方法的实现,返回一个新的Bean实例。 8. **`BeanPostProcessor`接口** 通过实现`BeanPostProcessor`接口,可以在Bean实例化后...

    Spring在应用中获得Bean的方法

    对于接口,Spring提供了`@Lookup`注解,可以在运行时动态创建Bean实例。这通常用于实现类的懒加载或者运行时的选择。 6. **使用`ApplicationContextAware`接口** 实现`ApplicationContextAware`接口,可以获取到`...

    Spring動態加載Bean

    4. **使用`Prototype`作用域**:Spring中的`Prototype`作用域允许每次请求时创建一个新的Bean实例,因此可以视为一种动态加载的方式。例如: ```xml <bean id="prototypeService" class=...

    Spring bean为什么默认是单例

    这意味着无论有多少次请求获取同一个Bean,Spring容器只会创建一个实例,并且在整个应用生命周期中重复使用这个实例。这种设计决策基于性能和资源管理的考虑。 首先,让我们深入理解Spring Bean的单例模式。当一个...

    JSP 开发之Spring Boot 动态创建Bean

    在使用Spring Boot开发JSP应用时,动态创建Bean是一个高级功能,它允许在运行时根据特定条件或配置创建和管理Bean,而不是在启动时静态定义。 Spring框架提供了多种方式来实现动态创建Bean,其中使用注解导入是一种...

    Spring之动态注册bean的实现方法

    在 Spring 框架中,动态注册 Bean 是一个非常重要的功能,它允许开发者在应用程序运行时动态添加或删除 Bean,从而提高应用程序的灵活性和可维护性。下面我们将详细介绍 Spring 之动态注册 Bean 的实现方法。 动态...

Global site tag (gtag.js) - Google Analytics