Springboot项目启动时将数据缓存map中,测试通过
注意点
注意项目启动时容器对象还未初始化完成,不能用 @Autowired注入
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class CodeCache {
public static Map<String, String> map = new HashMap<String, String>();
private static Logger logger = LoggerFactory.getLogger(CodeCache.class);
private static CityDao cityDao;
//不能用 @Autowired注入 此处手动注入对象
public WxUtil(CityDao cityDao) {
this.cityDao= cityDao;
}
@PostConstruct//优先执行
public static void init() {
List<Properties> list= cityDao.selectCodeALL();
for (Properties prop: list) {
map.put(code.getKey(),code.getValue());
}
logger.info("map======"+map )
}
@PreDestroy
public void destroy() {
//系统运行结束
}
public static String getValue(String key) {
return map.get(key);
}
//@Scheduled(cron = "0 0 0/2 * * ?")//每2小时执行一次缓存
// public void testOne() {init();}
}
调用CodeCache .getValue(“key”)