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初始化完畢======================>"); } }