spring开发问题总结(持续更新)

开始

最近在做项目的时候,总遇到一些大小不一,奇形怪状的问题。

现在终于有时间来总结一下遇到的问题,以备复习之用。
以下提到的问题经过简化,不代表任何项目代码或问题。

问题1:未完成任务状态搜索结果有误,不应该搜索出已超期数据。

原因:因为未完成、已完成和已超期的范围限定有问题,存在需求理解不透彻的问题。

解决:

java 复制代码
/*
1、首先有3个指标
任务截止时间
任务完成时间
任务完成状态:任务完成数/任务总数
8、需求的限定条件
未完成0:任务完成状态!=1,并且当前时间<截止时间(一律未完成)
已完成1:任务完成状态==1&完成时间<截止时间&完成日期不能为空
已超期2:任务完成状态!=1&当前时间>截止时间,或者任务完成状态!=1&当前时间>截止时间&完成时间为null
这里主要的是状态区分,0和1确定好之后,剩下的就是已超期。
*/

问题2:活动结束时间提交后,结束时间不对。

原因:java如果把字段设置为date类型,spring会自动把前端传入的时间(2024-05-08 12:12:12)转换为看不懂的时间,spring框架的问题,自动转时间了。

解决:

java 复制代码
/*
我们拿string来接收时间参数。
然后再转换为数据库需要date类型。
还有一种情况,前端可能会传过来时间戳的类型,也需要把时间戳转为date类型,然后插入数据库。
(这里需要改进)
*/
  /**
     * 提交日期
     */
    @ApiModelProperty(value = "提交日期", required = true)
    @DateTimeFormat("yyyy-MM-dd")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    //@JSONField(format = "yyyy-MM-dd") //@JsonFormat失效则使用@JSONField 具体原因可百度
    private Date submitDate;
    /*
    @DateTimeFormat是spring包里面的注解,作用是接收从页面传到后台的日期值
@JsonFormat是jackson包里面的注解,作用是从后台向前台传递日期值。
解决相差八小时:timezone="GMT+8"
*/

问题3:活动时间搜索结果查不到最后一天的数据。

原因:因为SQL查询语句是根据%Y-%m-%d 来查询的,所以会查不到最后一天的数据。

解决:

java 复制代码
/*
需要查到精确的时分秒时间,才能够查出来数据,如下所示,
and pm.start_date >= STR_TO_DATE(CONCAT(#{param.startDate},'00:00:00'),'%Y-%m-%d %H:%i:%s')
and STR_TO_DATE(CONCAT(#{param.endDate}, '23:59:59'),'%Y-%m-%d %H:%i:%s') >= pm.end_date
需要把字符串拼接在一起,然后在转换为时间进行比较STR_TO_DATE
*/

问题4:驳回数据,重新提交,再次驳回,应用端代办未显示再次驳回数据代办。

原因:在查询待办的时候,限定了活动开始和结束时间。

解决:

java 复制代码
去掉开始和结束时间的查询限制,但是要限定用户id,以及未删除。

问题5:代办中心点击待复盘数据,跳转页面有误。

原因:在redis里面消息的id获取的时候重复了。因为msgid只有0000数,但是深夜跑数据的时候,会用掉大部分的数据,所以导致id重复了,而对方系统会根据id来获取一个id,然后再跳转,就出问题了。

解决:

java 复制代码
/*
把redis里面的数量增加到十万级别,然后id就不会重复了。
*/

结尾

怎么说呢,因为刚开始写后端代码,很多东西还有待熟悉,例如:

1、业务逻辑熟悉不全面;

2、对需求理解不够透彻;

3、SQL一些函数还不熟悉;

4、测试不够充分;

5、粗心大意;

以上这些都要针对性的去解决才行,没有后退可言,只能一步一个脚印向前冲!!!

共勉。

相关推荐
polaris063044 分钟前
Spring Boot 项目开发流程全解析
java·spring boot·log4j
程序员cxuan1 小时前
vibe coding 凉了,wish coding 来了
人工智能·后端·程序员
货拉拉技术1 小时前
一单多运履约平台的架构演进之路
后端
zuowei28891 小时前
spring实例化对象的几种方式(使用XML配置文件)
xml·java·spring
C、空白格1 小时前
Java集成Vosk实现离线语音识别
java·开发语言·语音识别
金融大 k1 小时前
Spring Boot WebSocket 实时行情推送实战:从断线重连到并发优化
spring boot·后端·websocket
阿巴斯甜1 小时前
preProcessHandler: (AppException) -> Boolean用法:
java
编码浪子1 小时前
基于 Rust + Axum 的企业级权限管理系统设计与实现
开发语言·后端·rust
掘金者阿豪1 小时前
从零到一:Spring Boot快速接入金仓数据库实战
后端
Lyyaoo.1 小时前
【JAVA基础面经】native方法
java·开发语言