有时候我们在其启动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配置问题:Log4j初始化警告 **知识点:** - **Log4j初始化警告**:“Please initialize the log4j system properly”通常是因为log4j.properties文件未正确配置或缺失。 - **解决方案**: - 确保...
通过XML配置或注解,开发者可以声明对象及其依赖关系,由容器负责实例化、初始化和装配。 3. **面向切面编程(Aspect-Oriented Programming, AOP)**:Spring提供AOP支持,允许开发者将横切关注点(如日志、事务...
- **Repository Populators**:可以用来初始化数据库或填充初始数据。 - **遗留 Web 支持**: - **域类 Web 绑定**:Spring MVC 中的绑定支持。 - **Web 分页**:支持 Web 上的分页功能。 #### 四、MongoDB ...
最后,Spring Boot是4.x时代的重要创新,它简化了Spring应用的初始搭建和配置过程,通过预设默认值和自动配置,让开发者可以快速启动项目。 书中提供的源码实例可以帮助读者深入理解这些概念,通过实际操作加深对...
Spring通过容器来管理对象的生命周期,包括创建、初始化、装配以及销毁等步骤。这使得代码更加松耦合,更易于测试和维护。实现IOC的关键是依赖注入(Dependency Injection,简称DI)。在Spring中,DI可以通过构造器...
数据库SQL文件可能是用来初始化数据的,包含了创建表、插入数据等操作。这有助于你理解如何将Spring MVC与数据库集成,使用JDBC或ORM框架如Hibernate进行数据访问。 Spring MVC的架构由几个关键组件组成: 1. **...
Spring Boot 是一个基于Spring框架的全新子项目,旨在简化Spring应用的初始搭建以及开发过程。相较于传统Spring应用开发,Spring Boot提供了“约定优于配置”的理念,使得开发者能够更加快速地构建独立的、生产级别...
本篇文章主要介绍了JavaWeb中web.xml初始化加载顺序详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Spring Boot是Spring框架的一个子项目,它简化了初始化、配置以及运行Java应用的过程,尤其适合微服务开发。 描述中的“NULL”表明没有提供具体的课程内容摘要,但我们可以通过标签和博文链接推测一些关键点。标签...
5. **Spring Boot**:Spring Boot简化了Spring应用程序的启动和配置,通过“约定优于配置”的原则,大大降低了项目的初始化复杂度。 6. **Spring Security**:Spring Security是一个全面的安全管理框架,提供了认证...
5. **Spring 配置**:使用 Spring 的依赖注入来管理 Compass 和 Hibernate 实例,确保在需要时可以正确初始化和关闭。 6. **测试和优化**:编写测试用例验证搜索功能是否正常工作,并根据性能需求调整 Compass 的...
标题"hello-spring:你好春天跟随代码"以及描述"hello-spring:你好春天跟随代码"暗示我们将探讨的是一个与Spring框架相关的入门教程或示例项目。标签"Java"进一步确认了我们的讨论焦点是基于Java的Spring框架。 ...
通过 Spring Initializr 来快速初始化一个 Spring Boot 原型,方便学员来极速体验Spring Boot。 本课程也将会采用Gradle作为项目管理工具,让学员掌握最前瞻的构建工具。通过探索项目让学员了解项目的结构,已经...
Spring Boot是构建微服务的基础,它简化了Spring应用的初始设置和配置。开发者只需要添加必要的依赖,就可以快速启动并运行服务。例如,在Spring-Microservice-Department-developer目录中,我们可能会找到包含`pom....
3. **Bean管理**:学习如何定义和配置Bean,理解Bean的生命周期,包括初始化、销毁方法,以及各种作用域(singleton、prototype等)。 4. **数据访问集成**:Spring支持多种数据访问技术,如JDBC、Hibernate和...
6. 数据库脚本,用于初始化数据库结构和数据。 7. 测试代码,可能包含单元测试和集成测试。 8. 项目的README文档,提供了项目概述、安装指南和使用说明。 通过这个压缩包,学习者可以跟随实战教程,逐步了解如何将...
笔记将详细阐述Bean的定义、作用域、初始化和销毁方法。 8. **Spring Security**:这是Spring的一个安全模块,用于身份验证和授权。笔记可能会触及基本的安全配置和授权机制。 通过【韩顺平 2011版 spring视频教程...
Spring Boot是Spring框架的一个子项目,旨在简化Spring应用的初始搭建和开发过程。它提供了预配置的依赖,使得开发者可以快速启动一个新的项目。Spring Boot的核心特性包括自动配置、内嵌式Web服务器(如Tomcat)...
2. **Bean容器**:Spring管理的对象被称为Bean,Bean容器负责创建、初始化、装配和管理这些对象。 3. **AOP(面向切面编程)**:Spring支持AOP,允许开发者定义“切面”来封装横切关注点,如日志、事务管理,减少...