`
tuhaitao
  • 浏览: 379321 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

跟随Spring一起初始化

阅读更多
    有时候我们在其启动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入门十大问题

    #### 二、Spring配置问题:Log4j初始化警告 **知识点:** - **Log4j初始化警告**:“Please initialize the log4j system properly”通常是因为log4j.properties文件未正确配置或缺失。 - **解决方案**: - 确保...

    spring in action 3Ed 带源代码

    通过XML配置或注解,开发者可以声明对象及其依赖关系,由容器负责实例化、初始化和装配。 3. **面向切面编程(Aspect-Oriented Programming, AOP)**:Spring提供AOP支持,允许开发者将横切关注点(如日志、事务...

    spring-data-mongodb-reference 1.5.4

    - **Repository Populators**:可以用来初始化数据库或填充初始数据。 - **遗留 Web 支持**: - **域类 Web 绑定**:Spring MVC 中的绑定支持。 - **Web 分页**:支持 Web 上的分页功能。 #### 四、MongoDB ...

    精通Spring+4.x++企业应用开发实战包含源码

    最后,Spring Boot是4.x时代的重要创新,它简化了Spring应用的初始搭建和配置过程,通过预设默认值和自动配置,让开发者可以快速启动项目。 书中提供的源码实例可以帮助读者深入理解这些概念,通过实际操作加深对...

    spring ioc和aop讲解项目demo

    Spring通过容器来管理对象的生命周期,包括创建、初始化、装配以及销毁等步骤。这使得代码更加松耦合,更易于测试和维护。实现IOC的关键是依赖注入(Dependency Injection,简称DI)。在Spring中,DI可以通过构造器...

    spring mvc demo 详细说明

    数据库SQL文件可能是用来初始化数据的,包含了创建表、插入数据等操作。这有助于你理解如何将Spring MVC与数据库集成,使用JDBC或ORM框架如Hibernate进行数据访问。 Spring MVC的架构由几个关键组件组成: 1. **...

    Spring Boot 3核心特性

    Spring Boot 是一个基于Spring框架的全新子项目,旨在简化Spring应用的初始搭建以及开发过程。相较于传统Spring应用开发,Spring Boot提供了“约定优于配置”的理念,使得开发者能够更加快速地构建独立的、生产级别...

    JavaWeb中web.xml初始化加载顺序详解

    本篇文章主要介绍了JavaWeb中web.xml初始化加载顺序详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Spring Boot 视频

    Spring Boot是Spring框架的一个子项目,它简化了初始化、配置以及运行Java应用的过程,尤其适合微服务开发。 描述中的“NULL”表明没有提供具体的课程内容摘要,但我们可以通过标签和博文链接推测一些关键点。标签...

    spring-framework-learning-code:从0开始深入学习Spring小册子原始码-源码开源

    5. **Spring Boot**:Spring Boot简化了Spring应用程序的启动和配置,通过“约定优于配置”的原则,大大降低了项目的初始化复杂度。 6. **Spring Security**:Spring Security是一个全面的安全管理框架,提供了认证...

    compass_hibernate_spring2.zip

    5. **Spring 配置**:使用 Spring 的依赖注入来管理 Compass 和 Hibernate 实例,确保在需要时可以正确初始化和关闭。 6. **测试和优化**:编写测试用例验证搜索功能是否正常工作,并根据性能需求调整 Compass 的...

    hello-spring:你好春天跟随代码

    标题"hello-spring:你好春天跟随代码"以及描述"hello-spring:你好春天跟随代码"暗示我们将探讨的是一个与Spring框架相关的入门教程或示例项目。标签"Java"进一步确认了我们的讨论焦点是基于Java的Spring框架。 ...

    Spring Boot带前后端 渐进式开发企业级博客系统

    通过 Spring Initializr 来快速初始化一个 Spring Boot 原型,方便学员来极速体验Spring Boot。 本课程也将会采用Gradle作为项目管理工具,让学员掌握最前瞻的构建工具。通过探索项目让学员了解项目的结构,已经...

    Spring-Microservice-Department:跟随

    Spring Boot是构建微服务的基础,它简化了Spring应用的初始设置和配置。开发者只需要添加必要的依赖,就可以快速启动并运行服务。例如,在Spring-Microservice-Department-developer目录中,我们可能会找到包含`pom....

    APCSHW-Spring:Spring学期 - 第 6 期

    3. **Bean管理**:学习如何定义和配置Bean,理解Bean的生命周期,包括初始化、销毁方法,以及各种作用域(singleton、prototype等)。 4. **数据访问集成**:Spring支持多种数据访问技术,如JDBC、Hibernate和...

    源代码.rar

    6. 数据库脚本,用于初始化数据库结构和数据。 7. 测试代码,可能包含单元测试和集成测试。 8. 项目的README文档,提供了项目概述、安装指南和使用说明。 通过这个压缩包,学习者可以跟随实战教程,逐步了解如何将...

    韩顺平课堂笔记

    笔记将详细阐述Bean的定义、作用域、初始化和销毁方法。 8. **Spring Security**:这是Spring的一个安全模块,用于身份验证和授权。笔记可能会触及基本的安全配置和授权机制。 通过【韩顺平 2011版 spring视频教程...

    spring-beginner-study:Younghan Kim的Spring免费入门讲座https

    Spring Boot是Spring框架的一个子项目,旨在简化Spring应用的初始搭建和开发过程。它提供了预配置的依赖,使得开发者可以快速启动一个新的项目。Spring Boot的核心特性包括自动配置、内嵌式Web服务器(如Tomcat)...

    spring-practice

    2. **Bean容器**:Spring管理的对象被称为Bean,Bean容器负责创建、初始化、装配和管理这些对象。 3. **AOP(面向切面编程)**:Spring支持AOP,允许开发者定义“切面”来封装横切关注点,如日志、事务管理,减少...

Global site tag (gtag.js) - Google Analytics