springboot启动时缓存数据
一、Emos系统的常量数据
在sys_config数据表中保存了Emos系统的常量配置信息,其中就包括了考勤部分的常量信息。例如每天上班考勤从几点开始,截止到几点。下班考勤从几点开始,几点结束。

因为这些常量信息跟考勤模块息息相关,所以我们要编写Java代码,在SpringBoot项目启动的时候,就去数据库读取这些常量信息,然后缓存成Java对象,全局都可以使用。
在SysConfigDao.xml文件中声明查询语句
<select id="selectAllParam" resultType="com.example.emos.wx.db.pojo.SysConfig">
SELECT param_key, param_value FROM sys_config WHERE status = 1;
</select>
代码块
在SysConfigDao.java中声明抽象方法
@Mapper
public interface SysConfigDao {
public List<SysConfig> selectAllParam();
}
代码块
创建SystemConstants.java常量封装类
@Data
@Component
public class SystemConstants {
public String attendanceStartTime;
public String attendanceTime;
public String attendanceEndTime;
public String closingStartTime;
public String closingTime;
public String closingEndTime;
}
代码块
在EmosWxApiApplication.java文件中创建init()方法,读取常量数据并缓存
@PostConstruct
public void init() {
List<SysConfig> allParam = sysConfigDao.getAllParam();
for (SysConfig sysConfig : allParam) {
String key = sysConfig.getParamKey();
key = StrUtil.toCamelCase(key);
String value = sysConfig.getParamValue();
try {
Field field = constants.getClass().getDeclaredField(key);
field.set(constants, value);
} catch (Exception e) {
log.error("getDeclaredField执行异常", e);
}
}
}
浙公网安备 33010602011771号