Spring初始化完成後直接執行一個方法,初始化數據

     在作WEB項目時,常常在項目第一次啓動時利用WEB容器的監聽、Servlet加載初始化等切入點爲數據庫準備數據,這些初始化數據是系統開始運行前必須的數據,例如權限組、系統選項、默認管理員等等。可是項目若不是WEB工程,或者說還沒用到WEB層(例如單元測試),這時應如何方便地初始化數據呢? java

    藉助Spring容器是個很好的解決方案。Spring框架提供了事件機制,而事件機制必須實現ApplicationListener監聽器,所以咱們只要編寫一個實現類實現該接口的onApplicationEvent方法,在方法體中檢測數據庫的初始化數據是否存在並選擇初始化之。 spring

步驟: 數據庫

一、實現ApplicationListener接口 框架

二、交給Spring管理 單元測試

三、ok! 測試

示例代碼: spa

package com.zjh.dao; code

  xml

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方法中執行任何數據初始化動做,這樣只要容器啓動,就會執行這裏的代碼。

相關文章
相關標籤/搜索