摘要:程序中有如下entity类-LevyPaymentFlow @Data @TableName(value = "levy_payment_flow", autoResultMap = true) public class LevyPaymentFlow implements Serializable
阅读全文
摘要:隐式类型转换规则 MySQL 在进行比较操作时,如果比较双方的数据类型不一致,通常会尝试将其中一个数据类型转换为另一个数据类型,以便进行比较。 对于 select * from t_order where order_no = 1538808276987285507 ,当 order_no 为 va
阅读全文
摘要:与版本号乐观锁相比,有所不同的是,使用状态机幂等,可以不用事先查询数据。
阅读全文
摘要:资金类交易业务中 经常提到的Money类,大家了解一下。 了解了Money类,就会对资金类业务如电商交易、支付更了解。
阅读全文
摘要:序言 在单机系统里,如果有多个线程要同时访问某个共享资源的时候,我们可以采用线程间加锁的机制,即基于 mutex(互斥锁),当某个线程获取到这个资源后,就需要对这个资源进行加锁,当使用完资源之后,再解锁,其它线程就可以接着使用了。例如,在 Java 中 synchronized/Lock 等。 如今
阅读全文
摘要:这里要说的是,用户登录密码属于用户隐私数据。首先,隐私数据属于敏感数据,不能明文传输;其次,系统server端不能直接触碰用户密码。
阅读全文
摘要:本文介绍了设计API接口时需注意的关键点,包括数字签名、敏感数据加密与脱敏、限流、参数校验、统一返回与异常处理、请求日志记录、幂等设计、数据量限制、异步处理、参数定义、完整文档及开发者对接SDK等内容,旨在帮助开发者设计出安全、稳定、易维护的API接口。
阅读全文
摘要:她趣介意时效超5分钟的付款交易。简单一招,应对! 我们平台近期入网一个新客户是她趣。她趣这个企业比较关注下发时效,他们那边系统做了告警,当存在超5分钟时效的交易,就会发告警。然后,那边的人就来质问。并声称,现在只是放了3%的量,就总出现下发慢的交易,如果10月份剩下的这5天里依然存在,就不打算用我们
阅读全文
摘要:如题,调用 TableInfoHelper#getTableInfo(clazz) 这个工具方法可以得到entity类所对应的数据表的字段列表。 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.bao
阅读全文
摘要:spring-mybatis项目集成Mybatisplus实战小记
阅读全文
摘要:程序埋点(Event Tracking)是指在软件程序中嵌入记录用户行为或系统运行状态的代码,以便收集数据用于分析和监控。程序埋点通常用于分析用户行为、性能监控、问题排查、产品优化等目的。 何时使用程序埋点: 用户行为分析:了解用户在应用中的行为,例如点击量、页面访问次数等。 性能监控:监控应用性能
阅读全文
摘要:系统将交易数据按交易时间分为热表(最近3个月)和冷表(3个月前)。为保证用户体验,当企业门户端查询跨越冷热表时,尤其针对大客户,查询性能优化至关重要。以下是程序的SQL查询语句及其优化版本。
阅读全文
摘要:通过配置 `com.fasterxml.jackson.databind.ObjectMapper` 的 `enableDefaultTyping` 方法,可以使序列化后的 JSON 包含类信息。
阅读全文
摘要:本文详细分析了 Fastjson 反序列化对象的源码(版本 fastjson-1.2.60),揭示了即使 JavaBean 沲有默认无参构造器,Fastjson 仍能正常反序列化的技术内幕。文章通过案例展示了 Fastjson 在不同构造器情况下的行为,并深入探讨了 `ParserConfig#getDeserializer` 方法的核心逻辑。此外,还介绍了 ASM 字节码技术的应用及其在反序列化过程中的角色。
阅读全文
摘要:§1 先思考一个问题 先思考一个问题:我们在enum类里,可以直接使用 values() 或 valueOf(String name) 方法,我们也没有在enum类里定义这两个方法,怎么就能直接使用呢? 这里先按下不表。 下面是正文。 §2 enum类及其编译后的字节码 在java编程中,我们经常会
阅读全文
摘要:在非SpringBean类中直接获取SpringBean可能会引发问题,例如上面案例里提到的空指针和自动装配失败。为避免这些问题,建议将需要访问Spring Bean的类也注册为Spring Bean,以确保依赖关系得到正确管理。
阅读全文
摘要:关于局部变量,适时定义可以提高代码可读性并规避不必要的bug。示例代码中,为了避免误解`checkTaskApplyDTO`仅设置了`userId`,在`existAppliedTask`方法内部,可以通过将`checkTaskApplyDTO`的定义与设置属性的操作靠近,以明确其所有属性值的来源。另外,本文还展示了一个因提前定义变量`ret`而导致的bug实例。如果将此变量的定义延迟至其实际使用前,则可以避免此类问题。适时定义变量有助于减少混淆,提高代码质量。
阅读全文
摘要:Spring MVC 默认使用 Jackson 库进行 JSON 的序列化和反序列化,无需额外的配置
阅读全文
摘要:我的方法,是基于excel强大的公式和mysql强大的sql来搞。
阅读全文
摘要:本案是一个非常简单的程序重构案例。实际企业应用开发过程中,我们遇到的场景远比这个要复杂。以此为例,希望大家加强对代码重构的理解
阅读全文