跳到主要内容

简述Spring IOC有哪些扩展点,在什么时候调用 ?

参考答案:

Spring的IOC容器提供了几个扩展点,这些扩展点允许开发者在Spring容器生命周期的不同阶段进行自定义操作。以下是Spring IOC的主要扩展点及其调用时机:

  1. BeanFactoryPostProcessor

    • 扩展点:BeanFactoryPostProcessor接口。
    • 调用时机:在Spring容器启动,创建并初始化BeanFactory之后,但在其他Bean创建之前调用。这个接口主要用于修改或装饰BeanFactory本身。
  2. BeanPostProcessor

    • 扩展点:BeanPostProcessor接口。
    • 调用时机:在Bean的初始化方法(如afterPropertiesSet或自定义的init方法)之前和之后调用。BeanPostProcessor允许你在Bean创建和初始化过程中执行一些自定义逻辑,如代理模式的实现等。
  3. InitializingBean

    • 扩展点:InitializingBean接口。
    • 调用时机:在Bean的所有属性被Spring容器设置之后,但在Bean被使用之前调用。实现此接口的Bean会有一个afterPropertiesSet方法,该方法会在所有属性设置后被调用。
  4. DisposableBean

    • 扩展点:DisposableBean接口。
    • 调用时机:当Bean不再被容器管理,即将被销毁时调用。实现此接口的Bean会有一个destroy方法,该方法会在Bean销毁时被调用,常用于清理资源。
  5. FactoryBean

    • 扩展点:FactoryBean接口。
    • 调用时机:FactoryBean本身是一个Bean,但它不是直接生产最终对象的,而是生产其他Bean的工厂。当你从Spring容器中获取一个FactoryBean时,你实际上获取的是它生产的Bean,而不是FactoryBean本身。

这些扩展点提供了丰富的功能,允许开发者在Spring容器的不同生命周期阶段进行自定义操作,从而满足各种复杂的应用需求。