2023-7-28 11:00:00
发布于 2024-5-17 17:20:52
以下内容源自《【面试真题】》 仅供学习交流使用
禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN@日星月云 博客主页是https://blog.csdn.net/qq_51625007 禁止其他平台发布时删除以上此话
快手-本地生活 受试者:js
26.同一个类中方法调用,aop有用吗
27.aop原理,具体描述一下
28.动态代理有几种
可是对于代理设计模式有两种实现形式:JDK的代理支持(是基于父接口的代理形式)、CgLib代理支持(是基于类的代理形式),对于常规的业务层的项目开发,那么采用JDK的代理设计模式很方便,但是如果要是对一些控制层的类进行代理设计,那么就要使用到CgLib了。
Java代理模式分为静态代理和动态代理两种类型。
静态代理:在编译期间就已经确定了代理类的代码,代理类和被代理类通过实现同一个接口或者继承同一个父类来达到代理的效果。静态代理的优点是结构简单、易于理解和实现,但是缺点是每个被代理类都需要一个代理类,导致类的数量增多,维护起来较为困难。
动态代理:在运行时动态生成代理对象的代理模式。通过Java的反射机制,在运行时动态地生成代理类和代理对象。相比静态代理,动态代理不需要提前定义代理类,使得代理类的编写更加灵活和简便。常用的动态代理技术有Java的Proxy类和CGLIB库。动态代理的优点是可以代理任意类型的对象,缺点是实现较为复杂。
总的来说,静态代理适用于对特定类进行代理的场景,而动态代理适用于需要代理多个类或者接口的场景。
AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,用于解决分散在不同模块或对象中的横切关注点(cross-cutting concerns)问题。AOP可以通过动态代理来实现。
AOP动态代理指的是在运行时动态生成代理对象,通过拦截方法的调用,将额外的逻辑(横切关注点)插入到方法的前后或者周围。这些额外的逻辑可以是日志记录、事务管理、安全检查、性能监控等。
Java中的动态代理有两种实现方式,一种是使用Java自带的Proxy类,另一种是使用第三方库CGLIB。
Java的Proxy类:Java提供了一个Proxy类,可以在运行时动态地创建代理对象。代理对象实现了指定接口,并且通过调用InvocationHandler接口的方法来拦截被代理对象的方法调用。在InvocationHandler中可以处理额外的逻辑,如在方法前后添加日志记录。使用Proxy类创建动态代理需要了解被代理接口。
CGLIB:CGLIB是一个强大的第三方库,可以在运行时动态生成代理对象,而不需要被代理类实现接口。CGLIB通过继承被代理类,生成子类作为代理类,并通过重写方法的方式实现方法的拦截。CGLIB的动态代理更加灵活,可以代理没有实现接口的类。
AOP动态代理在实际应用中广泛使用,可以帮助开发者解耦业务逻辑和横切关注点,提高代码的重用性和可维护性。
2023-7-28 12:00:00
我们都有光明的未来
以上就是本篇文章【快手本地生活-Java实习一面【面试真题】】的全部内容了,欢迎阅览 ! 文章地址:http://www.cs-ej.cn/news/5201.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 成事e家移动站 http://shsunc.cs-ej.cn/ , 查看更多