详解spring boot容器加载完后执行特定操作
有时候我们需要在springboot容器启动并加载完后,开一些线程或者一些程序来干某些事情。这时候我们需要配置ContextRefreshedEvent事件来实现我们要做的事情
1、ApplicationStartup类
publicclassApplicationStartupimplementsApplicationListener{ publicvoidonApplicationEvent(ContextRefreshedEventevent) { //在容器加载完毕后获取dao层来操作数据库 OSSVideoRepositoryossVideoRepository=(OSSVideoRepository)event.getApplicationContext().getBean(OSSVideoRepository.class); //在容器加载完毕后获取配置文件中的配置 ServerConfigserverConfig=(ServerConfig)event.getApplicationContext().getBean(ServerConfig.class); ServerFileScannerfileScanner=newServerFileScanner( ossVideoRepository,serverConfig.getScanpath()); //在容器加载完毕后启动线程 Threadthread=newThread(fileScanner); thread.start(); } }
2、ServerConfig类
@Component @ConfigurationProperties(prefix="server") publicclassServerConfig{ privateStringaliyunossEndpoint; privateStringaliyunossAccessKeyId; privateStringaliyunossAccessKeySecret; privateStringaliyunossBucketName; privateStringscanpath; publicStringgetAliyunossEndpoint(){ returnaliyunossEndpoint; } publicvoidsetAliyunossEndpoint(StringaliyunossEndpoint){ this.aliyunossEndpoint=aliyunossEndpoint; } publicStringgetAliyunossAccessKeyId(){ returnaliyunossAccessKeyId; } publicvoidsetAliyunossAccessKeyId(StringaliyunossAccessKeyId){ this.aliyunossAccessKeyId=aliyunossAccessKeyId; } publicStringgetAliyunossAccessKeySecret(){ returnaliyunossAccessKeySecret; } publicvoidsetAliyunossAccessKeySecret(StringaliyunossAccessKeySecret){ this.aliyunossAccessKeySecret=aliyunossAccessKeySecret; } publicStringgetAliyunossBucketName(){ returnaliyunossBucketName; } publicvoidsetAliyunossBucketName(StringaliyunossBucketName){ this.aliyunossBucketName=aliyunossBucketName; } publicStringgetScanpath(){ returnscanpath; } publicvoidsetScanpath(Stringscanpath){ this.scanpath=scanpath; } }
PS:还有一些spring内置的事件
1、ContextRefreshedEvent:ApplicationContext容器初始化或者刷新时触发该事件。
2、ContextStartedEvent:当使用ConfigurableApplicationContext接口的start()方法启动ApplicationContext容器时触发该事件。
3、ContextClosedEvent:当使用ConfigurableApplicationContext接口的close()方法关闭ApplicationContext容器时触发该事件。
4、ContextStopedEvent:当使用ConfigurableApplicationContext接口的stop()方法停止ApplicationContext容器时触发该事件。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。