摘要: Spring中事务嵌套这么用一定得注意了!! 前言 最近项目上有一个使用事务相对复杂的业务场景报错了。在绝大多数情况下,都是风平浪静,没有问题。其实内在暗流涌动,在有些异常情况下就会报错,这种偶然性的问题很有可能就会在暴露到生产上造成事故,那究竟是怎么回事呢? 问题描述 我们用一个简单的例子模拟下,大家也可以看看下面这段代码输出的结果是什么。 阅读全文
posted @ 2023-04-22 08:53 JAVA旭阳 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 麻了,不要再动不动就BeanUtil.copyProperties!!! 前言 最近项目上要求升级一个工具包hutool的版本,以解决安全漏洞问题,这不升级还好,一升级反而捅出了更大的篓子,究竟是怎么回事呢? 事件回顾 我们项目原先使用的hutool版本是5.7.2,在代码中,我们的数据传输对象DTO和数据实体对象中大量使用了工具包中的BeanUtil.copyPrope 阅读全文
posted @ 2023-04-16 09:04 JAVA旭阳 阅读(485) 评论(2) 推荐(2) 编辑
摘要: SpringBoot项目中使用缓存Cache的正确姿势!!! 前言 缓存可以通过将经常访问的数据存储在内存中,减少底层数据源如数据库的压力,从而有效提高系统的性能和稳定性。我想大家的项目中或多或少都有使用过,我们项目也不例外,但是最近在review公司的代码的时候写的很蠢且low, 大致写法如下: public User getById(String id) 阅读全文
posted @ 2023-04-10 15:13 JAVA旭阳 阅读(1928) 评论(0) 推荐(1) 编辑
摘要: 如何使用责任链默认优雅地进行参数校验? 前言 项目中参数校验十分重要,它可以保护我们应用程序的安全性和合法性。我想大家通常的做法是像下面这样做的: @Override public void validate(SignUpCommand command) { validateCommand(command); // will throw 阅读全文
posted @ 2023-03-28 10:02 JAVA旭阳 阅读(330) 评论(0) 推荐(1) 编辑
摘要: 前言 不知道大家是不是和我一样,为了追求速度,开发时一般都是直接建表就干,哪管什么E-R图。直到xxx项目找上你,某某客户要E-R图,提供一下吧。这时候就很烦,从头绘制E-R图成本真的很高,今天我就遇到了这个糟心事。 那有什么办法快速从我们的DDL建表语句直接反向生成我们的E-R图呢?如何做到即便新 阅读全文
posted @ 2023-03-21 20:15 JAVA旭阳 阅读(597) 评论(0) 推荐(4) 编辑
摘要: 如何自动化测试你的接口?—— Rest Assured 前言 不知道大家的项目是否都有对接口API进行自动化测试,反正像我们这种小公司是没有的。由于最近一直被吐槽项目质量糟糕,只能研发自己看看有什么接口测试方案。那么在本文中,我将探索如何使用 Rest Assured 自动化 API 测试,Rest Assured 是一个基于 Java 的流行的用于测试 阅读全文
posted @ 2023-03-20 20:50 JAVA旭阳 阅读(273) 评论(0) 推荐(1) 编辑
摘要: Spring Boot中如何优雅地实现异步调用? 前言 SpringBoot想必大家都用过,但是大家平时使用发布的接口大都是同步的,那么你知道如何优雅的实现异步呢? 这篇文章就是关于如何在Spring Boot中实现异步行为的。但首先,让我们看看同步和异步之间的区别。 同步编程:在同步编程中,任务一次执行一个,只有当一个任务完成时,下一个任务才会被 阅读全文
posted @ 2023-03-17 10:16 JAVA旭阳 阅读(1983) 评论(0) 推荐(4) 编辑
摘要: 学会规则引擎Drools,让你早点下班 前言 现在有这么个需求,网上购物,需要根据不同的规则计算商品折扣,比如VIP客户增加5%的折扣,购买金额超过1000元的增加10%的折扣等,而且这些规则可能随时发生变化,甚至增加新的规则。面对这个需求,你该怎么实现呢?难道是计算规则一变,就要修改业务代码,重新测试,上线吗。 其实,我们可以通过规则引 阅读全文
posted @ 2023-03-11 11:02 JAVA旭阳 阅读(1213) 评论(2) 推荐(4) 编辑
摘要: 工厂模式进阶用法,如何动态选择对象? 前言 工厂设计模式可能是最常用的设计模式之一,我想大家在自己的项目中都用到过。可能你会不屑一顾,但这篇文章不仅仅是关于工厂模式的基本知识,更是讨论如何在运行时动态选择不同的方法进行执行,你们可以看看是不是和你们项目中用的一样? 欢迎关注个人公众号【JAVA旭阳】交流沟通 小菜鸟的问题 直接上例子说明 阅读全文
posted @ 2023-03-10 14:28 JAVA旭阳 阅读(263) 评论(0) 推荐(2) 编辑
摘要: 前言 作为内存中数据存储,Redis 以其速度和性能着称,通常被用作大多数后端服务的缓存解决方案。 但是,在内部,Redis 采用单线程架构。 为什么单线程设计依然会有这么高的性能?如果利用多线程并发处理请求不是更好吗? 在本文中,让我们深入探讨为什么 Redis 才有单线程架构,依然如此之快,主要 阅读全文
posted @ 2023-02-07 15:59 JAVA旭阳 阅读(487) 评论(1) 推荐(0) 编辑