
工作相关
文章平均质量分 54
工作相关
zquwei
本空间是学习总结,有抄录,也有原创,鞭策自己每天需要坚持学习。
展开
-
【结合AOP与ReflectUtil对返回数据进行个性化填充展示】
思路是可以定义一个切面 把返回的列表信息重新遍历一遍。如上面例子 可以再定义一个dic注解 判断如果在sex字段打了@dict标签就根据编码转换或返回多一个中文字段。或者根据自己的业务需要把某些字段进行个性化填充展示。对于接口列表返回的数据,我们通常有时候会对某些特殊的字段进行转化,或者根据某逻辑进行重新赋值,举个例子,原创 2023-09-10 21:50:18 · 224 阅读 · 0 评论 -
动态表单设计
自定一表单数据结构。内容展示如有必要行转列。前端根据题目类型自定义组件后端跟俊题目类型用策略模式校验各种类型这样有统计功能的简单动态问卷就可以了展示时可能某些场景需要行转列。大概估摸使用的话有可能kmic_form_data_detail表的记录数比较大,后期再考虑数据或者表迁移或拆分。原创 2023-09-08 17:51:24 · 2937 阅读 · 4 评论 -
记一次线上并发出现分布式锁失效的问题
记一次线上并发出现分布式锁失效的问题原创 2022-09-21 19:49:26 · 1112 阅读 · 0 评论 -
java自定义线程池名称
背景:工作中有时候需要自定义线程池名称,以便于更好地定位问题。分析查看线程池核心类分析下:ThreadPoolExecutor线程池执行时会添加工作线程://如例子代码:ExecutorService executorService =new ThreadPoolExecutor(5,5,1, TimeUnit.MINUTES,new LinkedBlockingDeque<>(),new NamedThreadFactory("测试"));//Ex原创 2022-02-15 11:22:21 · 2714 阅读 · 1 评论 -
分布式事务与seata(oracle版)的使用
背景前端时间公司的Oracle项目改造发觉需要用到分布式事务,顾继续回顾加强学习一下。分布式事务事务要说分布式事务,首先还是从事务的基本特征说起。A 原子性 :在事务的执行过程中,要么全部执行成功,要么都不成功。C 一致性 :事务在执行前后,不能破坏数据的完整性。一致性更多的说的是通过 AID 来达到目的,数据应该符合预先的定义和约束,由应用层面来保证,还有的说法是 C 是强行为了 ACID 凑出来的。I 隔离性:多个事务之间是互相隔离的,事务之间不能互相干扰,涉及到不同事务的隔离级别的问题原创 2021-10-02 11:08:32 · 951 阅读 · 1 评论 -
结合spring特性实现的策略模式
结合spring特性实现的策略模式背景工作中常常需要用到设计模式,集合spring实现的设计模式使用起来比较方便,下面就简单举例使用下。如我这里想根据不同的场景类型更新不同的表。使用1、策略接口类public interface UpdateTableStrategy { void UpdateTableByAnswer();}2、不同的策略实现类:@Componentpublic class updateTable1 implements UpdateTableSt原创 2021-09-14 10:42:25 · 287 阅读 · 0 评论 -
统一返回值处理、统一异常处理
项目中与前端对接通常需要统一的返回处理和异常处理。统一异常处理比较简答直接上代码:@Slf4j@ControllerAdvicepublic class GlobalExceptionHandler { /** * 校验异常处理 * * @param e e * @return AjaxResult * @throws Exception */ @ExceptionHandler(value = MethodArgu原创 2021-05-20 15:31:05 · 421 阅读 · 0 评论 -
基于SpringSecurity+JWT的微服务鉴权解决方案
基于SpringSecurity+JWT的微服务鉴权解决方案背景公司一旧项目权鉴改造达到目的任意一端登录(web、app、h5)后可以携带对应的token 来请求访问后台服务资源。#### 传统认证流程:互联网服务离不开用户认证。一般流程是下面这样:用户向服务器发送用户名和密码服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等服务器向用户返回一个 session_id,写入用户的 Cookie。用户随后的每一次请求,都会通过 Cookie,将 s原创 2021-05-05 18:36:08 · 1220 阅读 · 0 评论 -
springboot 上传文件-feign內部調用
springboot 上传文件-feign內部調用1.springboot版本-springboot2.1.62.feign间调用注意的点:1.注解用:@RequestPart2.变量:MediaType.MULTIPART_FORM_DATA_VALUE3.如果不行添加:,required = false例子:/** * 项目共享文件-保存,feign內部調用 */ @RequestMapping( value = "/feignUploadFile",cons原创 2021-01-14 16:57:57 · 200 阅读 · 0 评论 -
Spring的声明式事务@Transactional注解的6种失效场景
Spring事务管理的两种方式事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。编程式事务:是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例try { //TODO something transactionManager.commit(status);} catch (Exception e) { transactionManager.rollback(status); t原创 2020-08-27 11:59:21 · 348 阅读 · 0 评论 -
spring boot@Value和bean执行顺序问题
很多时候我们需要在某个bean初始化时,读取一个类的属性如:从配置文件中获取配置使用@value,当你在bean加载时调用@value时会出现空指针异常。因为bean加载完成后才会执行@value。方法一:写多一个配置类方法二:定义为static类型...原创 2020-08-20 11:20:26 · 1253 阅读 · 1 评论 -
graphics.drawString中文乱码
前言在绘制微信海报时出现中文昵称乱码问题原因在linux下没有对应字体解决在c:/windows/fonts 文件夹下找到对应的字体,然后复制到linux的jkd目录下。cd $JAVA_HOME/jre/lib/fonts 找到目录新建一个文件加(fallback),拷贝字体重启jvm...原创 2020-08-07 10:37:26 · 1242 阅读 · 0 评论 -
如何优雅地导出报表
前言有时候我们需要导出一些报表,但是当有多人同时导出报表时,可能对服务器的压力,尤其是数据库的压力比较大,因为导出报表可能涉及到的查询语句比较多 而且比较耗时,io压力比较大。我们公司在前端时间就出现过cup压力升高,报警的短信,查看具体进程是因为某时刻导出报表的人比较多。怎么避免有时候客户导出报表后不一定期望立即能够返回结果,当任务过多时可以让他等待。于是我们可以让利用mq来削峰 或限流。这就需要业务和技术之间达成一个共识,业务或技术之间有一方能够进行妥协是可以接受的。于是,当点击下载时可以跳到一原创 2020-08-03 14:56:46 · 520 阅读 · 0 评论 -
ThreadLocal的使用总结
前言工作中用到了ThreadLocal,觉得非常巧妙好用,顾总结下ThreadLocal 通常使用场景在进行对象跨层传递的时候,使用ThreadLocal可以避免多次传递,打破层次间的约束线程间数据隔离进行事务操作,用于存储线程事务信息。数据库连接,Session会话管理。工作中就是利用了ThreadLocal省去了频繁的传递参数。使用先写一个工具类public class VersionHodler { private static ThreadLocal<docV原创 2020-07-22 12:30:36 · 436 阅读 · 0 评论 -
反射技术运用
前言昨天工作中遇到使用反射的场景,看别人用得多了,真正自己使用后总结一下。场景工作中通常有场景是根据某个类型来判断调用哪个方法,比如我们有个导出的功能,有很多类型报表需要导出,如果是某个业务类型的功能我们需要调用不同的service,代码大概会是这样:if(type ==0 ){ serviceA.doA(param1); } if(type ==1){ serviceB.doB(param1,param2);原创 2020-07-21 12:20:18 · 221 阅读 · 0 评论