添加钩子而不更改源代码

时间:2016-07-20 05:42:50

标签: java hook

是否可以在不改变方法的情况下为meothd添加钩子?例如:

public class class1{ 
    public void method1(){}
}
public class class2{
    public void method2(){}
}

现在每次执行method1()时如何执行method2(),而不更改class1中的任何内容?

2 个答案:

答案 0 :(得分:4)

这称为AOP或Aspect Oriented Programming,通过字节码操作实现。

Spring includes facilities for AOP

AOP的详细描述对于StackOverflow来说太长了,因为Web上有很多好的资源,所以它是多余的。

答案 1 :(得分:0)

使用'装饰器模式'扩展class1的功能。这种方法需要更改调用class1

的代码