实现InitializingBean重写方法afterPropertiesSet
package com.util;
import me.uding.repo.ConfigParamRepository;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Component
public class ConfigParamUtils implements InitializingBean {
Log logger = LogFactory.getLog(ConfigParamUtils.class);
private ConcurrentHashMap paramMap=new ConcurrentHashMap();
@Autowired
ConfigParamRepository configParamRepository;
public String getValue(String key) throws Exception {
String value= paramMap.get(key);
if(value==null){
throw new Exception("Key:"+key+" get Value is NULL");
}
return value;
}
@Override
public void afterPropertiesSet() throws Exception {
initParamMap();
}
public void initParamMap(){
//logger.info("Start init config from DB");
List> maps=configParamRepository.queryConfigInfo();
for (Map tmp :maps){
String key=tmp.get("config_key");
String value=tmp.get("config_value");
paramMap.put(key,value);
//logger.info(String.format("Key:%s Value:%s is add in Cache",key,value));
}
}
}