有时候我们在其启动Spring容器的同时希望也初始化一些我们系统内部的参数,或者缓存等等,这时候我们可以实现spring给我们提供的初始化接口:
public interface InitializingBean {
void afterPropertiesSet() throws Exception;
}
实现这个接口即可:
package com.tuz.test;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.InitializingBean;
public class IndexBuilder implements InitializingBean {
private final Logger log = Logger.getLogger(getClass());
//操作线程延时启动的时间,单位为秒
private int lazyTime = 10;
//可以通过Spring注入,是否建立索引
private boolean buildIndex = false;
private Thread indexThread = new Thread() {
@Override
public void run() {
try {
Thread.sleep(lazyTime * 1000);
log.info("begin index...");
long beginTime = System.currentTimeMillis();
//这里可以放入具体要执行的方法
long costTime = System.currentTimeMillis() - beginTime;
log.info("index finished.");
log.info("costed " + costTime + " milliseconds");
} catch (InterruptedException e) {
log.error("Index failed!", e);
}
}
};
@Override
public void afterPropertiesSet() throws Exception {
if (buildIndex) {
indexThread.setDaemon(true);
indexThread.setName("Indexer");
indexThread.start();
}
}
//geters and seters 这里省略了
}
下边是XML配置文件:
<bean id="IndexBuilder" class="com.tuz.test.IndexBuilder" lazy-init="false">
<property name="buildIndex" value="true" />
<property name="lazyTime" value="5" />
</bean>
很简单的只要实现一个接口就能让我们的应用跟随Spring容器一起初始化了.
分享到:
相关推荐
下面小编就为大家带来一篇浅谈spring容器中bean的初始化。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了Spring的初始化和XML解析的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了详解Spring Boot中初始化资源的几种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
springboot初始化资源的几种方式 在Spring Boot中,可以使用多种方式来跟随项目启动,
主要介绍了浅谈Spring与SpringMVC父子容器的关系与初始化,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
本篇文章主要介绍了JavaWeb中web.xml初始化加载顺序详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
通过 Spring Initializr 来快速初始化一个 Spring Boot 原型,方便学员来极速体验Spring Boot。 本课程也将会采用Gradle作为项目管理工具,让学员掌握最前瞻的构建工具。通过探索项目让学员了解项目的结构,已经...
网络爬虫可以通过mvn:spring-boot:run任务从命令行运行该应用程序这将在localhost:8080上初始化rest服务。 可以通过对以下站点进行POST来实例化给定站点的Web爬网 使用以下示例JSON: {“ URL”:“ ”,“ ...
通过 Spring Initializr 来快速初始化一个 Spring Boot 原型,方便学员来极速体验Spring Boot。本课程也将会采用Gradle作为项目管理工具,让学员掌握最前瞻的构建工具。通过探索项目让学员了解项目的结构,已经相关...
初始化于02/26/21最后更新于03/10/21 :globe_with_meridians: 描述 一个可滚动的线性故事,随着他们学习如何处理冒名顶替综合症而跟随一个角色。 内置于React中并利用react-spring视差滚动效果,每个部分都有自己的...