`
away888
  • 浏览: 26756 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

借助Spring监听接口为数据库初始化数据(转)

阅读更多
在做WEB项目时,经常在项目第一次启动时利用WEB容器的监听、Servlet加载初始化等切入点为数据库准备数据,这些初始化数据是系统开始运行前必须的数据,例如权限组、系统选项、默认管理员等等。但是项目若不是WEB工程,或者说还没用到WEB层(例如单元测试),这时应如何方便地初始化数据呢?

    借助Spring容器是个很好的解决方案。Spring框架提供了事件机制,而事件机制必须实现ApplicationListener监听器,因此我们只要编写一个实现类实现该接口的onApplicationEvent方法,在方法体中检测数据库的初始化数据是否存在并选择初始化之。

步骤:

1、实现ApplicationListener接口

2、交给Spring管理

3、ok!

示例代码:

package com.zjh.dao;

import javax.annotation.Resource;

import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Repository;

@Repository//交给Spring管理,如果不是自动扫描加载bean的方式,则在xml里配一个即可
public class InitData implements ApplicationListener {

  @Resource TestDao testDao;//注入一个dao,可以操控数据库

  public void onApplicationEvent(ApplicationEvent event) {


initArticleCategory();

   }
 
  }

private void initArticleCategory(){

//检测数据库是否有初始化数据,若没有则在此初始化数据

if(testDao.getCount(ArticleCategory.class)==0){

//将文章的分类数据初始化到数据库

}

}

     可以在onApplicationEvent方法中执行任何数据初始化动作,这样只要容器启动,就会执行这里的代码。

张纪豪(zhangjihao@sohu.com)

分享到:
评论
1 楼 kingliu 2011-04-07  
不错,我在找这方面的东西

相关推荐

Global site tag (gtag.js) - Google Analytics