インタフェースInitializingBean
-
org.springframework.beans.factory.InitializingBean
- 空afterPropertiesSetは()例外がスローされます。
-
カスタムの初期化を実行するために、例えば、または単に必要なすべての属性が設定されているかどうかを確認するには:たBeanFactoryがBeanのすべてのプロパティを設定した後、豆はすぐに応答する必要があります。
-
別の方法は、XMLビーン定義で、例えば、から定義InitializingBean initメソッドを指定することです。すべてのBeanのライフサイクルメソッドの一覧について
afterPropertiesSet()
- など、すべてのBeanのプロパティと会うBeanFactoryAware、ApplicationContextのウェアを、設定した後、それは、それを含むたBeanFactoryによって呼び出されます。
- この方法は、Beanインスタンスは、認証およびすべてのBeanプロパティを設定した後、最終的な初期化の全体的な構成を実行可能にします。
利用シナリオ
- あなたはサービスが実行される前に、いくつかのフォルダを作成する必要がある場合は、コンテナに配備バックエンドサービスの後、あなたは新しい運用環境がある起動するたびに、あなたが使用することを検討することができます。それspringbean初期化が完了する準備です
シーンワン:服务部署时,检查必要的文件目录是否存在
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* 服务部署时,检查必要的文件目录是否存在
* 若不存在则创建目录
* Created by JQ.Wang on 2020/4/7.
*/
@Component
@Slf4j
public class FilePathConfig implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
List<String> filePaths = new ArrayList<>();
filePaths.add(FilePathConstant.SOURCE_FILE_PATH);
filePaths.add(FilePathConstant.TEMPLATE_FILE_PATH);
filePaths.add(FilePathConstant.UPLOAD_FILE_PATH);
filePaths.add(FilePathConstant.ZIP_FILE_PATH);
for(String filePath : filePaths){
File f = new File(filePath);
if (!f.exists()) {
f.mkdirs();
}
if(f.exists()){
log.info("创建文件路径{}已存在",filePath);
}
}
}
}