spring啟動時加載字典表數據放入map


 

import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.zsmy.constant.Constant;
import cn.zsmy.service.tmp.ExDictService;
import cn.zsmy.tmp.extend.entity.ExDict;


/**
 * 初始化系統參數 
 *
 */
@Service("dictInit")
public class DictInit {
    
    /**存放系統參數*/
    public static HashMap<String, String> dictMap = new HashMap<String, String>();
    
    @Autowired
    private ExDictService exDictService;
    
    /**參數初始化工作*/
    public void start() {
        injectDictConfigByDb();
    }
    
    /**讀取字典表 */
    private void injectDictConfigByDb() {
        Constant.MY_LOG.debug("-------Shm:injectDictConfigByDb--開始-------------------");
        List<ExDict> exDictList = exDictService.findDict();
        if(exDictList != null && exDictList.size() > 0){
            for (ExDict exDict : exDictList) {
                dictMap.put(exDict.getCode(), exDict.getdValue());
            }
        }
        //打印map
        HashMap<String, String> dictMap = (HashMap<String, String>) DictInit.dictMap;
        for (HashMap.Entry<String, String> entry : dictMap.entrySet()) {  
            Constant.MY_LOG.debug("Key = " + entry.getKey() + ", Value = " + entry.getValue());  
        }  
        Constant.MY_LOG.debug("-------Shm:injectDictConfigByDb--結束-------------------");
    }
}

 

 

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;

import cn.zsmy.constant.Constant;

@Component("BeanDefineConfigue")
public class BeanDefineConfigue implements ApplicationListener<ContextRefreshedEvent> {
    
    @Autowired
    private DictInit dictInit;
    
    //YC:當一個ApplicationContext被初始化或刷新觸發 
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        Constant.MY_LOG.debug("YYCC:START:spring初始化開始======================>");
        if (event.getApplicationContext().getParent() == null) {//root application context 沒有parent,他就是老大.
            Constant.MY_LOG.debug("啟動projectInit的start方法進行參數的初始化======================>");
            dictInit.start();
        } else {
            //為什么會執行兩次:請參考博文:http://www.cnblogs.com/yucongblog/p/5437744.html
            Constant.MY_LOG.debug("spring初始化時,執行onApplicationEvent:event.getApplicationContext().getParent() != null======================>");
        }
        Constant.MY_LOG.debug("YYCC:END:spring初始化完畢======================>");
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM