Spring家族の中のいくつかの使いやすいインターフェースと種類

2489 ワード

1.Spring BootにおけるCommundLinerとAppplication Runnerの2つのインターフェース
アプリケーションの開発過程では、容器が起動する時に、いくつかの操作を実行する必要があります.Spring Bootでは、Command LinerとAppleication Runnerの2つのインターフェースを提供して、このような需要を実現します.
二つのインターフェースパラメータは異なり、他のものはほぼ同じであり、実際の需要に応じて適切なインターフェースを選択して使用することができる.CommundLinerインターフェースにおけるrunメソッドのパラメータはString配列であり、Appleication RunnerにおけるrunメソッドのパラメータはAppplication Agmentsである.
package com.pifeng;

import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

/**
 * @author pifeng
 * @date 2019/07/20 22:36
 */
@Component
public class RunService implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
        //        ,              ,  CommandLineRunner               ,             
        new Thread() {
            @Override
            public void run() {
                int i = 0;
                while (true) {
                    i++;
                    try {
                        Thread.sleep(10000);
                        System.out.println("   10  ……,i   :" + i);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    // 40        
                    if (i == 4) {
                        throw new RuntimeException();
                    }
                    continue;
                }
            }
        }.start();
    }
}
2.SpringのInitializingBeanとDispable Beanの二つのインターフェース
Springでは、InitializingBenとDispposable Beanは二つのマークインターフェースであり、Springがbeanの初期化と廃棄挙動を実行する時に有用な方法である.
1.Beanに対してInitializingBeanを実現するには、afterPropertiesset()は、すべてのbean属性が設定された後に実行されます.
2.に対して ビーン DispposableBeanを実現しました.これは動作します. destroyがいます Spring 容器の放出について bean その後
3.SpringのBeanPostProcessorインターフェースBeanPostProcessorはビーンバックプロセッサとも呼ばれ、Springで定義されたインターフェースであり、Spring容器の作成中(特にBean初期化前後)にBeanPostProcessorで定義された2つの方法を繰り返す.BeanPostProcessorのソースコードは以下の通りです.
public interface BeanPostProcessor {


    Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException;

    
    Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException;

}
postProcessBeforeInitialization方法は、各beanオブジェクトの初期化方法が起動される前に、フィードバックされる.postProcessAfterInitialization方法は、各beanオブジェクトの初期化方法が起動された後にチューニングされる.具体的な実行時期はSpringのBenのライフサイクルのソースコードを参照して探究することができます.