JavaAgent工具入门

JavaAgent 是一个 Java 运行时工具,它可以在 JVM 启动时,以代理的方式加载到 JVM 中。它可以通过在类加载过程中对字节码进行修改,来实现对应用程序行为的动态监测和改变。

原生AspectJ

AspectJ 是为了解决面向切面的编程而诞生的,通过它可以在Java应用程序中织入横切关注点,比如日志、性能分析、安全检查等。AspectJ 定义了一套自己的语法,拥有自己的编译器。

Java 动态代理

JDK 动态代理jdk 提供了动态代理的 API:Interface proxy = (Interface) Proxy.newProxyInstance(Interface.class.getClassLoader(), new Class[]{Interface.class}, new DynamicProxyHandler(targetObject));targetObject 为要被代理的

Spring优雅停机

前言Spring 优雅停机在某些业务场景下是至关重要的,比如你的项目里有MQ 的消费.消费过程中要去调用外部服务的接口查询所需数据(Feign调用).消费处理完成后,要发送一个 MQ 通知消息.在停机时,如果不考虑关闭顺序,那么就会出现你还在消费消息,但是外部的接口已经调不通了,或者是你已经处理完成,通知消息却发不出去了,在某些情况下,可以通过消息重试等机制来解决,但是在与资金相关的项目中,停机顺

Java-Date类型被数据库四舍五入的问题

前言在上下游数据对账时,发现存入数据库的时间跟发送给下游的时间上有差异,比如上游存入 MySQL 数据库的时间为:2023-03-01 00:00:00,(数据库的字段类型为 datetime)而下游接收到的时间为 2023-02-28 00:00:00. 执行顺序像下图这样:伪代码如下:// new 一个时间 Date createTime = new Date(); // insert 入库