Spring家族の中のいくつかの使いやすいインターフェースと種類
1.Spring BootにおけるCommundLinerとAppplication Runnerの2つのインターフェース
アプリケーションの開発過程では、容器が起動する時に、いくつかの操作を実行する必要があります.Spring Bootでは、Command LinerとAppleication Runnerの2つのインターフェースを提供して、このような需要を実現します.
二つのインターフェースパラメータは異なり、他のものはほぼ同じであり、実際の需要に応じて適切なインターフェースを選択して使用することができる.CommundLinerインターフェースにおけるrunメソッドのパラメータはString配列であり、Appleication RunnerにおけるrunメソッドのパラメータはAppplication Agmentsである.
Springでは、InitializingBenとDispposable Beanは二つのマークインターフェースであり、Springがbeanの初期化と廃棄挙動を実行する時に有用な方法である.
1.Beanに対してInitializingBeanを実現するには、afterPropertiesset()は、すべてのbean属性が設定された後に実行されます.
2.に対して ビーン DispposableBeanを実現しました.これは動作します. destroyがいます Spring 容器の放出について bean その後
3.SpringのBeanPostProcessorインターフェース
アプリケーションの開発過程では、容器が起動する時に、いくつかの操作を実行する必要があります.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のライフサイクルのソースコードを参照して探究することができます.