![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java 处理各种情况
文章平均质量分 66
王大全
哥哼调。
展开
-
【数据自动脱敏】SpringBoot 实现数据加密脱敏(注解 + 反射 + AOP)
切入式编程: 将项目中关于用户信息实体类的字段用注解给标记,新增用户信息实体类(这里我们用UserBO来表示,给UserBO里面的name,phone字段添加@EncryptField),返回用户信息实体类(这里我们用UserDO来表示,给UserDO里面的name,phone字段添加@DecryptField);傻瓜式编程不是说傻,而是相当于切入式编程,傻瓜式编程需要对用户信息相关的所有接口进行加密,解密脱敏的逻辑处理,这里改动的地方就比较多,风险高,重复操作相同的逻辑,工作量大,后期不好维护;原创 2024-06-25 23:51:52 · 553 阅读 · 0 评论 -
【责任链】一条龙服务处理流程
*** 抽象类处理器*/@Component/*** 当前处理器持有下一个处理器的引用*/@Getter@Setter/*** 处理器配置*/@Setter@Getter/*** 处理器执行方法* @return*//*** 链路传递* @return*///下一个链路没有处理器了,直接返回//执行下一个处理器在AbstractCheckHandler抽象类处理器中,使用protected声明子类可见的属性和方法。转载 2024-06-23 23:18:50 · 14 阅读 · 1 评论 -
【AOP】切面 AOP 优雅的实现权限校验
AOP(Aspect Oriented Programming),面向切面思想,是Spring的三大核心思想之一(两外两个:IOC-控制反转、DI-依赖注入)。那么AOP为何那么重要呢?在我们的程序中,经常存在一些系统性的需求,比如权限校验、日志记录、统计等,这些代码会散落穿插在各个业务逻辑中,非常冗余且不利于维护。例如下面这个示意图:有多少业务操作,就要写多少重复的校验和日志记录代码,这显然是无法接受的。转载 2023-10-10 22:41:21 · 176 阅读 · 0 评论 -
【接口不对外暴露-过滤器】业务开发,接口不能对外暴露的3种实现方案
将对外暴露的接口和对内暴露的接口分别放到两个微服务上,一个服务里所有的接口均对外暴露,另一个服务的接口只能内网服务间调用。需要额外编写一个只对内部暴露接口的微服务,将所有只能对内暴露的业务接口聚合到这个微服务里,通过这个聚合的微服务,分别去各个业务侧获取资源。该方案,[缺点]:新增一个微服务做请求转发,增加了系统的复杂性,增大了调用耗时以及后期的维护成本。原创 2023-08-20 23:11:50 · 295 阅读 · 0 评论 -
【Tomcat---1】IDEA控制台tomcat日志输出乱码解决
一、修改IDEA的文件编码配置为UTF-8二、修改IDEA的vmoptions文件,添加-Dfile.encoding=UTF-8到Tomcat目录/conf文件夹修改logging.properties重启idea即可。采用统一的编码原创 2023-07-30 21:24:38 · 632 阅读 · 0 评论 -
【MySQL】MySQL 字段为 NULL 的5大坑
建立一张表。原创 2023-05-30 23:12:17 · 1122 阅读 · 0 评论 -
【BeanUtils.copyProperties】BeanUtils.copyProperties必须避开的坑
日常开发中,经常涉及到DO、DTO、VO对象属性拷贝赋值,很容易想到org.springframework.beans.BeanUtils的copyProperties。它会自动通过反射机制获取源对象和目标对象的属性,并将对应的属性值进行复制。可以减少手动编写属性复制代码的工作量,提高代码的可读性和维护性。转载 2023-05-29 22:36:41 · 498 阅读 · 0 评论 -
【MyBatis】PageHelper实现分页
2.配置拦截器插件在MyBatis的xml中配置拦截器插件3.使用DbStudents 实体类DbStudentsMapper 接口DbStudentsMapper.xml注意:sql 中就不要写 limit 了,pageHelp 会自己处理,sql 就按正常查询写法就好DbStudentsService 业务层接口DbStudentsServiceImpl 业务实现层最后 DbStudentsController 控制层直接调用原创 2023-05-25 23:08:30 · 558 阅读 · 0 评论 -
【Java 事务】保证每个循环体都是单独事务
比如有这么一个定时任务,需要定时处理一些超时未付款的订单。然后你查询所有符合条件的记录(假设有10条记录),接着for循环遍历每一个订单,每个循环体都要执行大量的业务,比如商品库存回退,订单状态修改,业务流水添加,消息推送等。原创 2023-05-22 23:24:32 · 370 阅读 · 0 评论 -
【Java Optional】处理NPE(NullPointerException)空值情况
有以下代码。原创 2023-05-16 23:51:35 · 86 阅读 · 0 评论