全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页

Spring AOP专项测试

20 题 30 分钟 难度:

考察知识点

  • AOP基本概念与定义
  • AOP核心术语(切面、切点、通知、连接点)
  • 五种通知类型
  • 切点表达式语法
  • AOP代理机制基础
1
单选题

AOP(Aspect-Oriented Programming)的中文含义是?

A

面向对象编程

B

面向切面编程

C

面向接口编程

D

面向服务编程

2
判断题

AOP的核心思想是将分散在各个模块中的公共功能(如日志、事务、安全)抽取出来,集中管理,实现代码复用和解耦。

A

B

3
填空题

AOP是对______的补充和扩展。OOP关注的是________的封装,而AOP关注的是__________的处理,两者结合使用可以构建更加清晰、模块化的系统架构。

4
单选题

在AOP中,Aspect(切面)是指?

A

被拦截的方法

B

拦截点(如方法调用处)

C

横切关注点的模块化封装

D

在拦截点执行的动作

5
多选题

以下对AOP术语的描述正确的有哪些?

A

Joinpoint:程序执行过程中的特定点,如方法调用

B

Pointcut:匹配连接点的表达式,定义何处应用切面

C

Advice:在连接点执行的具体动作

D

Target Object:被通知的对象,即被代理的目标对象

6
填空题

AOP中将切面应用到目标对象创建代理对象的过程称为______(Weaving)。Spring AOP使用__________方式,在程序运行过程中动态创建代理对象。AspectJ还支持__________和类加载时织入。

7
单选题

Spring AOP实现代理的核心机制是什么?

A

继承目标类创建子类

B

使用动态代理技术(JDK动态代理或CGLIB)

C

编译时修改源代码

D

使用反射直接调用方法

8
多选题

以下关于JDK动态代理的特点描述正确的有哪些?

A

要求目标类必须实现接口

B

使用java.lang.reflect.Proxy类创建代理

C

代理对象和目标对象是同一类型

D

通过InvocationHandler接口实现代理逻辑

9
判断题

CGLIB代理通过继承目标类生成子类,因此可以代理没有实现接口的类,但不能代理final类和final方法。

A

B

10
填空题

Spring可以通过配置强制使用CGLIB代理:在@EnableAspectJAutoProxy注解中设置________________=true,或在配置文件中设置spring.aop.proxy-target-class=true。Spring Boot 2.x默认使用______代理,即使目标类实现了接口。

11
单选题

以下哪种情况会导致Spring AOP代理失效?

A

在其他类中调用代理对象的方法

B

目标类是public类

C

在目标类内部调用被增强的方法

D

目标类实现了接口

12
单选题

Spring AOP支持的通知类型不包括以下哪种?

A

前置通知(Before)

B

后置通知(After)

C

中置通知(Middle)

D

异常通知(AfterThrowing)

13
多选题

以下关于Spring AOP通知类型的描述正确的是?

A

@Before通知可以阻止目标方法执行

B

@Around通知可以完全控制目标方法的执行

C

@AfterReturning通知可以获取方法的返回值

D

@After通知在方法抛出异常时也会执行

14
判断题

当一个方法同时匹配多个通知时,执行顺序是:@Before → 目标方法 → @AfterReturning → @After。

A

B

15
填空题

@Around环绕通知的方法参数必须是___________________类型,通过调用其_______方法执行目标方法。proceed()方法返回目标方法的______,可以在环绕通知中修改或包装该返回值。

16
单选题

以下代码中,@AfterReturning注解的returning属性值"result"的作用是?

Java
@AfterReturning(pointcut = "execution(* com.example.*.*(..))", returning = "result")
public void afterReturning(Object result) {
    // ...
}
A

定义切入点名称

B

绑定方法返回值到通知方法参数

C

指定返回通知的执行条件

D

定义通知方法的返回值

17
单选题

Spring AOP切入点表达式execution(* com.example.service..(..))的含义是?

A

匹配com.example.service包下所有类的所有方法

B

匹配com.example.service包及其子包下所有方法

C

只匹配com.example.service包下的public方法

D

匹配com.example包下所有service相关方法

18
多选题

以下哪些是合法的Spring AOP切入点表达式?

A

execution(public * *(..))

B

within(com.example.service..)

C

@annotation(org.springframework.transaction.annotation.Transactional)

D

bean(*Service)

19
判断题

within(com.example.service.UserService)表达式可以匹配UserService类中的所有方法,包括私有方法。

A

B

20
填空题

Spring AOP切入点表达式中,______表示匹配任意层级的包或任意参数,______表示匹配单个元素(如单个类名、方法名),______表示匹配指定类型及其子类/实现类。

下一个试卷 → Spring AOP高级专项测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库