`

spring容器动态增加外部bean

    博客分类:
  • JAVA
阅读更多

继上一篇文章<spring容器动态增加外部xml里的bean > 这次分享给大家的是如何在spring容器中动态增加一个bean实例,而不是来自xml配置里的bean

 

 public class MyBeanPost implements BeanFactoryPostProcessor{  
    
     private DefaultListableBeanFactory beanFactory;
        
     @Override  
     public void postProcessBeanFactory(  
           ConfigurableListableBeanFactory beanFactory) throws BeansException {  
      this.beanFactory = (DefaultListableBeanFactory)beanFactory;
     
      BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition("xxxClassName");
      builder.addPropertyReference("refBean11", "refBean11");//value是String类型,其实就是beanName  
      builder.addPropertyValue("property222", Object22);//value是object类型,与xml配置一样
       this.beanFactory.registerBeanDefinition("myNewBean", builder.getBeanDefinition());
     }  
   
 }  

 这个myNewBean可以实现spring的任何接口例如InitializingBean   FactoryBean,然后这个bean还会被自动装配起来。

 

另外一种用法是

 

this.beanFactory.registerSingleton(beanName, singletonObject)

 这个的话 是你把 singletonObject给new出来,一般比较简单的类可以这么使用。

分享到:
评论

相关推荐

    简单Spring容器实现

    - **依赖注入(Dependency Injection, DI)**:Spring的核心特性,它允许外部环境(如Spring容器)来管理对象的创建和依赖关系。DI通过反转控制权,使得组件之间松耦合,易于测试和维护。 - **Bean工厂(Bean ...

    Spring容器的通俗理解及简单写法

    而在IOC模式下,这个责任被“反转”到一个外部容器,即Spring容器。容器负责创建对象,管理它们的生命周期,并根据需要将依赖关系注入到对象中。这样,代码只需声明其依赖,而无需知道依赖的具体实现或如何获取依赖...

    Spring 容器后处理器

    BeanFactoryPostProcessor接口是Spring框架提供的一个接口,用于扩展Spring容器的功能。该接口只有一个方法`postProcessBeanFactory`,该方法在容器加载完成之后被调用,可以用来改变容器中的配置或做一些初始化工作...

    Spring实例化Bean顺序

    2. **依赖注入**:Spring容器会根据Bean之间的依赖关系来决定实例化顺序。如果一个Bean依赖于另一个Bean,那么被依赖的Bean会先被实例化。Spring使用“依赖倒置”的原则,使得控制权从对象内部转移到了外部的容器。 ...

    第一章 Spring4 简介及获取Bean

    依赖注入是Spring框架的一个核心特性,它允许将对象之间的依赖关系通过外部容器来管理,而不是由对象内部自行创建。这样做的好处是提高了代码的可测试性和可维护性,因为对象的依赖关系可以更容易地被模拟或替换。 ...

    Spring容器中IOC

    例如,在配置文件中添加了一个bean标签,并指定了id和class属性,Spring容器就会根据这个配置信息来创建对象实例。 IOC容器还提供了依赖注入的功能,可以将对象之间的关系维护到容器中,例如,ScheduleController...

    Spring IOC容器实现分析.pdf 下载

    IOC,即控制反转,是面向对象编程中的一个设计原则,它的主要思想是将对象的创建和管理权交给外部容器,而不是由对象自身负责。在Spring框架中,IOC容器负责管理对象的生命周期和依赖关系,通过配置文件或注解来定义...

    SPRING:bean配置properties

    这里,`propertyConfigurerForAnalysis`是`PropertyPlaceholderConfigurer`的实例bean,其作用是将`dbQuery.properties`中的键值对作为环境变量注入到Spring容器中。`classpath:`前缀表示该文件位于类路径下,即项目...

    Spring的IoC容器初始化源码解析

    它是所有Spring容器的基类,为其他容器提供了基本的服务和功能。 ##### 3.2 ApplicationContext介绍 `ApplicationContext`是在`BeanFactory`基础上的增强版本,除了继承了`BeanFactory`的所有功能之外,还提供了...

    Spring实现原理及IoC容器的优点

    然后,你可以使用注解如@Controller、@Service、@Repository和@Service来标记你的类,这些注解将被Spring容器自动扫描并管理。 在Web层,可以使用Spring MVC框架,通过定义DispatcherServlet和Controller来处理HTTP...

    spring ioc和aop原理流程图(详细)

    5. **Bean的生命周期**:Spring容器对Bean的生命周期进行管理,包括初始化、正常使用、销毁等阶段,开发者可以自定义生命周期回调方法以进行特定操作。 ### Spring AOP **面向切面编程(AOP)** 是Spring的另一个...

    Spring IoC容器实现的结构分析

    通过对IoC(Inversion of Control,控制反转)的实现,Spring容器将对象的创建和组装工作从应用代码中分离出来,使得应用更易于测试和维护。本文将从实现的角度,通过对外部接口、内部实现、组成部分和执行过程四个...

    18 Spring IoC容器如何读取应用外部的xml,txt,图形或者属性文件?慕课专栏(1)1

    这样,Spring容器就能加载并解析这个外部XML文件,进而管理其中定义的Bean。 了解了基本用法后,我们来探讨一下Spring读取外部文件的工作原理。Spring的`ApplicationContext`类是通过`DefaultResourceLoader`来加载...

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

    以上是Spring中基于XML的Bean配置的基本知识点,通过这些配置,我们可以精细控制Spring容器如何管理和实例化Bean,以及它们之间的依赖关系。随着Spring的发展,Java配置和注解配置逐渐成为主流,它们提供了更简洁、...

    仿spring ioc 容器

    5. **AOP支持**:虽然这不是IoC容器的基本功能,但Spring的另一个亮点是面向切面编程(AOP),可以在仿制品中考虑添加简单版的AOP支持,如后置处理器(PostProcessor)。 6. **扩展性**:一个好的IoC容器应该易于...

    Spring的Bean管理;IoC, DI

    控制反转(IoC)是一种设计原则,它将对象的创建和管理职责从应用代码中分离出来,转交给外部容器(在这种情况下是Spring容器)。这样,应用不再负责对象的创建和维护,而是由容器来控制对象的生命周期和对象间的...

    Spring Reference - Core Technologies.pdf

    实现这两个接口可以让Bean感知到Spring容器以及自己的Bean名称。 1.6.3 其他Aware接口 Spring提供了多个Aware接口,如ResourceLoaderAware、BeanClassLoaderAware等,用于让Bean感知到Spring容器的各种资源。 1.7 ...

Global site tag (gtag.js) - Google Analytics