package project.cms.data.loadcache; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jdbc.core.JdbcTemplate; import kernel.bo.RecordObjectMapper; import project.cms.Cms; import project.cms.CmsRedisKeys; import project.redis.RedisHandler; public class CmsLoadCacheService { private static final Logger logger = LoggerFactory.getLogger(CmsLoadCacheService.class); private JdbcTemplate jdbcTemplate; private RedisHandler redisHandler; public void loadcache() { load(); logger.info("完成Cms数据加载redis"); } public void load() { List list = jdbcTemplate.query("SELECT * FROM T_CMS", RecordObjectMapper.newInstance(Cms.class)); Map> cacheLanguage = new ConcurrentHashMap>(); for (Cms cms : list) { if (cacheLanguage.containsKey(cms.getLanguage())) { Map map = cacheLanguage.get(cms.getLanguage()); map.put(cms.getContent_code(), cms); cacheLanguage.put(cms.getLanguage(), map); } else { Map cache = new ConcurrentHashMap(); cache.put(cms.getContent_code(), cms); cacheLanguage.put(cms.getLanguage(), cache); } redisHandler.setSync(CmsRedisKeys.CMS_LANGUAGE_CONTENTCODE + cms.getLanguage() + cms.getContent_code(), cms); } for (Entry> entry : cacheLanguage.entrySet()) { redisHandler.setSync(CmsRedisKeys.CMS_LANGUAGE + entry.getKey(), entry.getValue()); } } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public void setRedisHandler(RedisHandler redisHandler) { this.redisHandler = redisHandler; } }