一、controller层
package com.atzhongruan.excelutils.controller; import com.atzhongruan.excelutils.service.CacheService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/testController") public class TestController { @Autowired private CacheService cacheService; /** * 获取缓存到系统 * 系统启动6秒后自动加载 每半小时刷新一次 */ @RequestMapping("/saveCache") @Scheduled(initialDelay = 1000 * 6, fixedDelay = 1000 * 1800) public void saveCache() { cacheService.saveCache(); } /** * 刷新系统 */ @RequestMapping("/freshCache") public void freshCache() { cacheService.freshCache(); } /** * 通过key获取value */ @RequestMapping("/getValue") public String getValue(String key) { String vlaue = cacheService.getVlaue(key); return vlaue; } }
二、service层
package com.atzhongruan.excelutils.service; /** * @Author jose * date 2019 */ public interface CacheService { void saveCache(); void freshCache(); String getVlaue(String key); }
三、service实现层
package com.atzhongruan.excelutils.service.Impl; import com.atzhongruan.excelutils.mapper.ConfigMapper; import com.atzhongruan.excelutils.service.CacheService; import com.atzhongruan.pojo.Config; import com.atzhongruan.utils.CacheConfigUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** * @Author jose * date 2019 */ @Service public class CacheServiceImpl implements CacheService { private final static Logger logger = LoggerFactory.getLogger(CacheConfigUtils.class); @Autowired private ConfigMapper configMapper; /** * 数据缓存map */ private static Map<String, String> concurrentHashMap = new ConcurrentHashMap(); @Override public void saveCache() { List<Config> list = configMapper.select(null); for (Config config : list) { concurrentHashMap.put(config.getKey(), config.getValue()); System.out.println(config.toString()); } logger.info("saveCache--end--"); if (concurrentHashMap == null) { logger.info("saveCache--fail--"); } } @Override public void freshCache() { concurrentHashMap.clear(); saveCache(); } @Override public String getVlaue(String key) { String value = concurrentHashMap.get(key); return value; } }
四、mapper直接查询所有
select * from config
五、实体类
package com.atzhongruan.pojo; import lombok.*; import java.util.Date; @Setter @Getter @ToString @NoArgsConstructor @AllArgsConstructor public class Config { private String id; private String key; private String value; private Date creattime; private Date updatetime; private String desc; }