代老师的博客 https://github.com/daichangya

Java Agent 使用指南

1.简介在本教程中,我们将讨论JavaInstrumentationAPI。 它提供了将字节码添加到现有已编译Java类的功能。我们还将讨论JavaAgent以及如何使用它们来检测代码。2.设定在整篇文章中,我们将使用工具构建一个应用程序。我们的应用程序将包含两个模块:允许我们提款的ATM应用还有一

daicy daicy 发布于 2020-06-11

使用 ASM 实现 Java 语言的“多重继承”

问题的提出 在大部分情况下,需要多重继承往往意味着糟糕的设计。但在处理一些遗留项目的时候,多重继承可能是我们能做出的选择中代价最小的。由于 Java 语言本身不支持多重继承,这常常会给我们带来麻烦,最后的结果可能就是大量的重复代码。本文试图使用 ASM 框架来解决这一问题。在扩展类的功能的同时,不产生任何重复代码。 考虑如下的实际情况:有一组类,名为 SubClass1、SubClas

daicy daicy 发布于 2019-04-17

Spring AOP实现原理与CGLIB应用

AOP(Aspect Orient Programming),也就是面向方面编程,作为面向对象编程的一种补充,专门用于处理系统中分布于各个模块(不同方法)中的交叉关注点的问题,在 Java EE 应用中,常常通过 AOP 来处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理主要分为静态代理和动态代

daicy daicy 发布于 2019-04-17

AOP 的利器:ASM 3.0 介绍

随着 AOP(Aspect Oriented Programming)的发展,代码动态生成已然成为 Java 世界中不可或缺的一环。本文将介绍一种小巧轻便的 Java 字节码操控框架 ASM,它能方便地生成和改造 Java 代码。著名的框架,如 Hibernate 和 Spring 在底层都用到了 ASM。比起传统的 Java 字节码操控框架,BCEL 或者 SERP,它具有更符合现代软件模式的编

daicy daicy 发布于 2019-04-17