今天有一个需求是:大屏要查询指定时间节点后的数据,后续这个时间可能会改,也可能去掉,
为了方便后面修改,所有想直接读取配置文件中的数据,经过研究+问Ai,最后得出一个方法:
具体操作如下:
application.yml 添加如下配置
config:
StartTimeOfTheStatistical: '2025-09-02' #统计开始时间
ConfigValueUtil 配置类中添加如下代码
@Data
@Component
@ConfigurationProperties(prefix = "config")
public class ConfigValueUtil {
@Value("${config.StartTimeOfTheStatistical}")
private static Date StartTimeOfTheStatistical;
@Value("${config.StartTimeOfTheStatistical:}")
private String startTimeOfTheStatistical;
private static String staticStartTimeOfTheStatistical;
@PostConstruct
public void init() {
if (StringUtil.isNotEmpty(startTimeOfTheStatistical)) {
staticStartTimeOfTheStatistical = startTimeOfTheStatistical;
}
}
public static String getStaticStartTimeOfTheStatistical() {
return staticStartTimeOfTheStatistical;
}
}
解释一下:这里为什么要一个static的变量,因为mybatis只支持读取静态的数据。
mapper.xml使用`
<select id="statisticsProblem" resultType="">
SELECT
COUNT(0) AS totalCount
FROM
xxxxx as b
WHERE
<if test="@jnpf.config.ConfigValueUtil@getStaticStartTimeOfTheStatistical() != null or @jnpf.config.ConfigValueUtil@getStaticStartTimeOfTheStatistical() != ''">
<bind name="staticStartTimeOfTheStatistical" value="@jnpf.config.ConfigValueUtil@getStaticStartTimeOfTheStatistical()"/>
and b.WHISTLE_TIME >= #{staticStartTimeOfTheStatistical}
</if>
</select>
大家凑合着看吧,时间有点急,先记一下