题目
对于使用业务接口的类, Spring 默认会使用 CGLIB 动态代理来实现 AOPA. 正确B. 错误
对于使用业务接口的类, Spring 默认会使用 CGLIB 动态代理来实现 AOP
A. 正确
B. 错误
题目解答
答案
B. 错误
解析
本题考查 Spring AOP 中动态代理的相关知识。解题思路是明确 Spring 在实现 AOP 时,对于使用业务接口的类和未使用业务接口的类分别采用的动态代理方式。
在 Spring 框架里,当实现 AOP 时,动态代理有两种常见方式:JDK 动态代理和 CGLIB 动态代理。
- JDK 动态代理:它是基于接口的代理方式。如果目标对象实现了某个接口,Spring 会优先使用 JDK 动态代理来创建代理对象。这是因为 JDK 动态代理是 Java 语言自带的功能,通过实现接口来创建代理实例,具有一定的优势,比如代码简洁、性能较好等。
- CGLIB 动态代理:它是基于类的代理方式。当目标对象没有实现任何接口时,Spring 会使用 CGLIB 动态代理。CGLIB 通过继承目标类来创建代理对象,它可以代理没有实现接口的类。
所以,对于使用业务接口的类,Spring 默认会使用 JDK 动态代理来实现 AOP,而不是 CGLIB 动态代理。