Às vezes, precisamos abrir alguns threads ou programas para fazer algo após o início do contêiner de inicialização da primavera. Neste momento, precisamos configurar o evento contextrefreshedEvent para alcançar o que queremos fazer
1. ApplicationStartup Class
public class ApplicationStartup implementa ApplicationListener <contextrefreshEDevent> {public void onApplicationEvent (contextrefreshedEvent Event) {// Depois que o contêiner estiver carregado, obtenha a camada dao para operar o banco de dados ossvideorePository) event.getApplicationContext (). getBean (ossvideorepository.class); // Depois que o contêiner é carregado, getConfig no arquivo de configuração serverconfig = (serverconfig) event.getApplicationContext (). GetBean (serverconfig.class); ServerFileScanner FileScanner = New ServerFileScanner (ossvideorepository, serverconfig.getScanPath ()); // Inicie o thread após o recipiente ser carregado Thread Thread = new Thread (FileScanner); thread.start (); }}2. Classe ServerConfig
@Componente@configurationProperties (prefix = "server") classe pública serverconfig {private string aliyunossendpoint; Private String AliyUnossaccessKeyId; Private String AliyunossaccessKeySecret; String privado AliyunossbucketName; Scanpath privado de string; public string getaliyunossendpoint () {return AliyUnossendPoint; } public void SetaliyUNOSSENDPOND (String AliyUNOSSENDPOINT) {this.aliyUNOSOSSENDPOND = AliyUNOSSENDPOND; } public string getaliyunossaccessKeyId () {return AliyUNOSSACCESSKEYID; } public void SetaliyunossaccessKeyId (String AliyunossaccessKeyId) {this.aliyunossaccessKeyId = AliyunossaccessKeyId; } public string getaliyunossaccessKeySecret () {return AliyunossaccessKeySecret; } public void SetaliyUNOSSACCESSKEYYSECRET (String AliyUNOSSACCESSKEYYSECRET) {this.aliyunossaccesskeysecret = AliyunossaccessKeySecret; } public string getaliyunossbucketName () {return AliyunossbucketName; } public void SetaliyunossbucketName (String AliyunossbucketName) {this.aliyunossbucketname = AliyunossbucketName; } public string getScanPath () {return scanPath; } public void SetaliyunossbucketName (String AliyunossbucketName) {this.aliyunossbucketname = AliyunossbucketName; } public string getScanPath () {return scanPath; } public void setScanPath (string scanPath) {this.canPath = scanPath; }}PS: Existem também alguns eventos incorporados à primavera
1. ContextRefreshEDevent: Este evento é acionado quando o contêiner ApplicationContext é inicializado ou atualizado.
2. ContextStartEDevent: Este evento é acionado quando o contêiner ApplicationContext é iniciado usando o método START () da interface ConfigurableApplicationContext.
3. ContextClosedEvent: Este evento é acionado quando o contêiner ApplicationContext é fechado usando o método Close () da interface ConfigurableApplicationContext.
4. ContextStopeDevent: Este evento é acionado quando o método stop () da interface ConfigurableApplicationContext é usado para interromper o contêiner ApplicationContext.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.