详解spring boot容器加载完后执行特定操作

网友投稿 531 2023-02-25


详解spring boot容器加载完后执行特定操作

有时候我们需要在spring boot容器启动并加载完后,http://开一些线程或者一些程序来干某些事情。这时候我们需要配置ContextRefreshedEvent事件来实现我们要做的事情

1、ApplicationStartup类

public class ApplicationStartup implements ApplicationListener{

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 getShttp://canpath() {

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容器时触发该事件。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:vue通过路由实现页面刷新的方法
下一篇:Collections.shuffle()方法实例解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~