代理
代理是实现AOP功能的核心和关键技术。Aspect oriented program,面向方面编程。安全、事务、日志等功能要贯穿到很多个模块中,它们就是交叉业务。AOP的目标:使交叉业务模块化。
如何实现的?
采用将切面代码移动到原始方法的周围。这与直接在方法中编写切面面代码是一样的。(这里的切面代码:就是附加的功能代码)实际开发中,将切面代码封装成对象,传递给InvocationHandler的invoke()方法。要为系统中的各种接口的类增加代理功能,若全部采用静态代理的方式,将需要很多的代理类。
动态代理类:JVM可以在运行时期动态的生成类的字节码,这种动态生成的类往往被用作代理类,即动态代理类。代理类:与目标类有相同的接口(方法集合),代理中的每个方法都调用目标类的方法,提供了一些附加的功能,如计算方法的运行时间,异常处理、事务管理、日志等。
|
|