TypechoJoeTheme

王子博客

用户名
密码
用户名
邮箱
搜索到 1 篇与 Spring AOP 的结果 ———
2022-09-14

使用Spring AOP实现异步文件上传

使用Spring AOP实现异步文件上传
背景相信很多系统里都有这一种场景:用户上传 Excel,后端解析 Excel 生成相应的数据,校验数据并落库。这就引发了一个问题:如果 Excel 的行非常多,或者解析非常复杂,那么解析+校验的过程就非常耗时。如果接口是一个同步的接口,则非常容易出现接口超时,进而返回的校验错误信息也无法展示给前端,这就需要从功能上解决这个问题。一般来说都是启动一个子线程去做解析工作,主线程正常返回,由子线程记录上传状态+校验结果到数据库。同时提供一个查询页面用于实时查询上传的状态和校验信息。进一步的,如果我们每一个上传的任务都写一次线程池异步+日志记录的代码就显得非常冗余。同时,非业务代码也侵入了业务代码导致代码可读性下降。从通用性的角度上讲,这种业务场景非常适合模板方法的设计模式。即设计一个抽象类,定义上传的抽象方法,同时实现记录日志的方法。例如://伪代码,省略了一些步骤 @Slf4j public abstract class AbstractUploadService<T> { public static ThreadFactory commonThreadFactor...
王子
2022-09-14

Java,技术与技巧

181 阅读
0 评论
2022年09月14日
181 阅读
0 评论