[春]、アノテーション駆動型の開発 - ライフサイクル - 使用と原則のBeanPostProcessor

このブログのデモ元アドレス
https://github.com/suchahaerkang/spring-annotation.git

1 BeanPostProcessorの使用

BeanPostProcessorスプリングがインタフェースで提供され、インタフェースは、前、すべてのコンポーネントを初期化し、いくつかの処理の後、それぞれ、2つのデフォルトの方法を提供します
ここに画像を挿入説明
ソースコードは、これらの2つのメソッドの実装のタイミング解析を見て
ここに画像を挿入説明
ここに画像を挿入説明
ここで我々は、カスタムコンポーネントの実装インタフェースBeanPostProcessorを持っているまず、それをテストするためのコードを使用し

/**
 * @description:
 * @author: sukang
 * @date: 2020-03-06 12:27
 */
@Component
public class MyBeanPostProcessor implements BeanPostProcessor {

    //组件创建并属性赋值之后,初始化函数执行之前执行这个方法
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("postProcessBeforeInitialization方法执行...");
        return bean;
    }

    //组件创建并属性赋值之后,初始化函数执行之后执行这个方法
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("postProcessAfterInitialization方法执行...");
        return bean;
    }

}

書き込みテストケース

 //测试BeanPostProcessor
 @Test
  public void test3(){
      //创建容器
      System.out.println("IOC容器创建...");
      ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfLifeCycle.class);
  }

業績
ここに画像を挿入説明

の原則2 BeanPostProcessor

ここでは、BeanPostProcessorの原理を分析するために、ソースコードを見て
割り当てと初期化、犬コンポーネントの作成を分析するために、ソースコードを見て、
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
単純な原則をまとめたソースコードが読み取り、擬似コードされているBeanPostProcessor

 //组件创建之后,对组件进行属性赋值,
 populateBean()
 initializeBean(){
      //遍历容器中的所有BeanPostProcessor,调用他们的postProcessBeforeInitialization()方法
      applyBeanPostProcessorsBeforeInitialization()
      //初始化组件
      invokeInitMethods()
      //遍历容器中的所有BeanPostProcessor,调用他们的postProcessAfterInitialization()方法
      applyBeanPostProcessorsAfterInitialization()
  }

3スプリングBeanPostProcessorを達成するために、構成要素の数を提供します

ここに画像を挿入説明
ここでApplicationContextAwareProcessorで簡単に見ては、このコンポーネントの
コンポーネントは、我々は上記のsetApplicationContext()メソッドApplicationContextAwareインターフェイスコンポーネント犬の基礎を実現するには、このメソッドはコンポーネントをもたらすために、パラメータなどのコンポーネントの初期化犬と犬のApplicationContextコンテナの前に呼び出されますかもしれない犬ApplicationContextのコンテナを使用。
ここに画像を挿入説明
効果ApplicationContextAwareProcessorこのコンポーネントは、我々はこのソースのコンポーネントを見ているため、コンテナは、コンポーネントの初期化が達成される前にそれを持って来ることができました
ここに画像を挿入説明
ここに画像を挿入説明

豆のライフサイクルの概要の4つのペア

公開された78元の記事 ウォン称賛32 ビュー90000 +

おすすめ

転載: blog.csdn.net/suchahaerkang/article/details/104693346