动态代理是一种在运行时动态生成代理类的技术,通常用于增强已有类的功能或实现AOP编程。
在Java中,主要有两种动态代理方式:JDK动态代理和CGLIB动态代理。
只能代理实现了接口的类,它需要用户提供一个接口的实现类,动态地在内存中创建代理对象,然后通过代理对象调用接口中定义的方法。
不需要实现接口,它可以代理普通的类。CGLIB动态代理通过创建目标对象的子类来实现代理,因此目标对象不能被标记为final,否则无法生成子类。
总的来说,JDK动态代理是基于接口的代理,具有良好的可扩展性和跨平台性;而CGLIB动态代理则是基于继承的代理,具有更高的性能和灵活性,但需要依赖于具体的平台和实现。在实际应用中,可以根据具体的需求和场景来选择适合的动态代理方式。
作者:lfsun666
链接:https://juejin.cn/post/7204293342946918458
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。