详解spring boot容器加载完后执行特定操作
程序员文章站
2023-11-29 09:03:52
有时候我们需要在spring boot容器启动并加载完后,开一些线程或者一些程序来干某些事情。这时候我们需要配置contextrefreshedevent事件来实现我们要做...
有时候我们需要在spring boot容器启动并加载完后,开一些线程或者一些程序来干某些事情。这时候我们需要配置contextrefreshedevent事件来实现我们要做的事情
1、applicationstartup类
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:还有一些spring内置的事件
1、 contextrefreshedevent:applicationcontext容器初始化或者刷新时触发该事件。
2、 contextstartedevent:当使用configurableapplicationcontext接口的start()方法启动applicationcontext容器时触发该事件。
3、 contextclosedevent:当使用configurableapplicationcontext接口的close()方法关闭applicationcontext容器时触发该事件。
4、 contextstopedevent: 当使用configurableapplicationcontext接口的stop()方法停止applicationcontext容器时触发该事件。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: win10 10122预览版Edge浏览器加入视频播放提醒标记
下一篇: mysql 优化日记