2019独角兽企业重金招聘Python工程师标准>>>
1.配置启动bean
<bean id="sysInit" class="com.XXX.XXX.XXX.SysInit" init-method="init"></bean>
2.java类
初始化类
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import com.tsou.comm.cache.impl.SysConfig;
import com.tsou.comm.cache.impl.SysDictionary;
import com.tsou.comm.cache.impl.SysTimer;
/**
*
* 类概述:系统启动时由springMVC调用init方法进行资源初始化
* @version
*/
public class SysInit {
@Autowired
JdbcTemplate jdbcTemplate;
public void init(){
loadSysSource(new SysConfig());
loadSysSource(new SysDictionary());
}
/**
*
* 描述:加载系统配置
* @param
* @return void
*/
public void loadSysSource(SourceInitInf source){
source.init(jdbcTemplate);
}
}
接口类
import org.springframework.jdbc.core.JdbcTemplate;
public interface SourceInitInf {
public void init(JdbcTemplate jdbcTemplate);
}
具体实现类: 这里SysConfig做例子 (里面包含增删改成)
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.jdbc.core.JdbcTemplate;
/**
* <p class="detail">
* 功能:系统初始化加载时加载配置表里面的配置项进行静态缓存
* </p>
* @ClassName: SysConfig
* @version V1.0
*/
public class SysConfig implements SourceInitInf {
Logger log=Logger.getLogger(SysConfig.class);
/**
* 系统配置静态缓存map
*/
public static Map<String,String> SYS_CONFIG_MAP = new HashMap<String,String>();
/**
* 系统启动时初始化加载配置
*/
@Override
public void init(JdbcTemplate jdbcTemplate) {
String sql = "SELECT id,ckey,cvalue,group_id,config_name FROM tb_sys_config ";
List<Map<String,Object>> config = jdbcTemplate.queryForList(sql );
for(int i=0; i<config.size(); i++){
SYS_CONFIG_MAP.put(config.get(i).get("ckey"), config.get(i).get("cvalue")));
}
log.info("tb_sys_config缓存加载完成,共加载配置项:"+config.size());
}
/**
*
* 描述:获取配置接口
* @param
* @return String
*/
public static String getValue(String key){
return SYS_CONFIG_MAP.get(key);
}
/**
*
* 描述:更新配置值
* @param
* @return void
*/
public static void addValue(String key,String value){
SYS_CONFIG_MAP.put(key, value);
}
/**
*
* 描述:更新配置值
* @param
* @return void
*/
public static void updateValue(String key,String value){
SYS_CONFIG_MAP.remove(key);
SYS_CONFIG_MAP.put(key, value);
}
/**
*
* 描述:删除配置值
* @param
* @return void
*/
public static void deleteValue(String key){
SYS_CONFIG_MAP.remove(key);
}
}
调用时
类名.SYS_CONFIG_MAP 就可以获取缓存内容了;
关于实现loadSysSource()接口工厂方法,不是很理解的,推荐阅读这篇博客: java中的接口与工厂模式;