spring boot容器について詳しく説明した後、特定の操作を実行します。


時々私達はspring bootの容器で起動して、そしてロードし終わった後に、いくつかスレッドあるいはいくつかのプログラムを開いていくつかの事をしにきます。この時に私達はContect RefreshedEventイベントを配置して私達のすることを実現しなければなりません。
1、Application Startup類

public class ApplicationStartup implements ApplicationListener<ContextRefreshedEvent>{
  public void onApplicationEvent(ContextRefreshedEvent event)
   {
    //          dao       
    OSSVideoRepository ossVideoRepository = (OSSVideoRepository)event.getApplicationContext().getBean(OSSVideoRepository.class);
    //                  
    ServerConfig serverConfig = (ServerConfig)event.getApplicationContext().getBean(ServerConfig.class);
    
    ServerFileScanner fileScanner = new ServerFileScanner(
        ossVideoRepository, serverConfig.getScanpath());
    //            
    Thread thread = new Thread(fileScanner);
    thread.start();
   }
}
2、ServerConfig類

@Component
@ConfigurationProperties(prefix = "server")
public class ServerConfig {
  private String aliyunossEndpoint;
  private String aliyunossAccessKeyId;
  private String aliyunossAccessKeySecret;
  private String aliyunossBucketName;
  private String scanpath;

  public String getAliyunossEndpoint() {
    return aliyunossEndpoint;
  }

  public void setAliyunossEndpoint(String aliyunossEndpoint) {
    this.aliyunossEndpoint = aliyunossEndpoint;
  }

  public String getAliyunossAccessKeyId() {
    return aliyunossAccessKeyId;
  }

  public void setAliyunossAccessKeyId(String aliyunossAccessKeyId) {
    this.aliyunossAccessKeyId = aliyunossAccessKeyId;
  }

  public String getAliyunossAccessKeySecret() {
    return aliyunossAccessKeySecret;
  }

  public void setAliyunossAccessKeySecret(String aliyunossAccessKeySecret) {
    this.aliyunossAccessKeySecret = aliyunossAccessKeySecret;
  }

  public String getAliyunossBucketName() {
    return aliyunossBucketName;
  }

  public void setAliyunossBucketName(String aliyunossBucketName) {
    this.aliyunossBucketName = aliyunossBucketName;
  }

  public String getScanpath() {
    return scanpath;
  }

  public void setScanpath(String scanpath) {
    this.scanpath = scanpath;
  }

}
PS:いくつかのスプリング内蔵イベントがあります。
1、Contect RefreshedEvent:AppplicationComptext容器初期化またはリフレッシュ時にこのイベントをトリガします。
2、Contect StartEvent:Configrable Apple plication Contectインターフェースのstart()方法でApplication Comptext容器を起動すると、このイベントをトリガします。
3、ContectClose Event:Configrable Apple plication Contectインターフェースのclose()方法でApplication Comptext容器を閉じると、このイベントをトリガします。
4、Contect Stop pedEvent:Configrable Apple Contectインターフェースのstop()方法でApplication Comptext容器を停止すると、このイベントをトリガします。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。