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);
            }

        }
    }

  

posted @ 2023-10-14 17:28  sgj191024  阅读(237)  评论(0)    收藏  举报