Spring AOP专项测试
考察知识点
- AOP基本概念与定义
- AOP核心术语(切面、切点、通知、连接点)
- 五种通知类型
- 切点表达式语法
- AOP代理机制基础
CGLIB代理通过继承目标类生成子类,因此可以代理没有实现接口的类,但不能代理final类和final方法。
AOP的核心思想是将分散在各个模块中的公共功能(如日志、事务、安全)抽取出来,集中管理,实现代码复用和解耦。
within(com.example.service.UserService)表达式可以匹配UserService类中的所有方法,包括私有方法。
当一个方法同时匹配多个通知时,执行顺序是:@Before → 目标方法 → @AfterReturning → @After。
以下代码中,@AfterReturning注解的returning属性值"result"的作用是?
@AfterReturning(pointcut = "execution(* com.example.*.*(..))", returning = "result")
public void afterReturning(Object result) {
// ...
}
Spring AOP支持的通知类型不包括以下哪种?
Spring AOP实现代理的核心机制是什么?
Spring AOP切入点表达式execution(* com.example.service..(..))的含义是?
AOP(Aspect-Oriented Programming)的中文含义是?
在AOP中,Aspect(切面)是指?
以下哪种情况会导致Spring AOP代理失效?
以下对AOP术语的描述正确的有哪些?
以下关于Spring AOP通知类型的描述正确的是?
以下关于JDK动态代理的特点描述正确的有哪些?
以下哪些是合法的Spring AOP切入点表达式?
Spring可以通过配置强制使用CGLIB代理:在@EnableAspectJAutoProxy注解中设置____________=true,或在配置文件中设置spring.aop.proxy-target-class=true。Spring Boot 2.x默认使用____________代理,即使目标类实现了接口。
@Around环绕通知的方法参数必须是____________类型,通过调用其____________方法执行目标方法。proceed()方法返回目标方法的____________,可以在环绕通知中修改或包装该返回值。
AOP中将切面应用到目标对象创建代理对象的过程称为____________(Weaving)。Spring AOP使用____________方式,在程序运行过程中动态创建代理对象。AspectJ还支持____________和类加载时织入。
AOP是对____________的补充和扩展。OOP关注的是____________的封装,而AOP关注的是____________的处理,两者结合使用可以构建更加清晰、模块化的系统架构。
Spring AOP切入点表达式中,____________表示匹配任意层级的包或任意参数,____________表示匹配单个元素(如单个类名、方法名),____________表示匹配指定类型及其子类/实现类。