【基于轻量型架构的WEB开发】课程 作业4 AOP
一. 单选题(共7题,38.5分)
1
(单选题)下列选项中,用于通知/增强处理的是( )。
A. Joinpoint
B. Pointcut
C. Aspect
D. Advice
正确答案:D
答案解析:在面向切面编程(AOP)中,用于通知或增强处理的是Advice(通知)。Advice定义了在特定的Joinpoint(连接点)上执行的动作,这些动作可以是方法执行前后、异常处理、甚至在方法执行时进行拦截。Advice与Pointcut(切入点)结合使用,Pointcut定义了一组Joinpoint,即程序执行的特定位置,Advice则指定在这些Joinpoint上要执行的操作。Aspect(切面)是Pointcut和Advice的组合,它将横切关注点的逻辑封装在一起。因此,用于通知或增强处理的是Advice。
2
(单选题)在Spring的配置文件中,配置切面使用的元素是( )。
- A. <aop:config>
- B. <aop:aspect>
- C. <aop:advisor>
- D. <aop:pointcut>
正确答案:B
答案解析:config配置切面的根元素。aspect配置切面。advisor配置通知器。pointcut配置切入点。
3
(单选题)下列选项中,用于配置异常通知的注解是( )。
- A. @After
- B. @Around
- C. @AfterReturning
- D. @AfterThrowing
正确答案:D
答案解析:after配置后置通知。around配置环绕通知。afterreturning配置返回通知。
4
(单选题)以下关于Spring AOP 的介绍错误的是( )。
A. AOP的全称是Aspect-Oriented Programming,即面向切面编程
B. AOP采取横向隔离机制,将分散在各个方法中的重复代码提取出来,这种采用横向隔离机制的方式,采用OOP思想是无法办到的
C. AOP是一种新的编程思想,采取横向抽取机制,是OOP的升级替代品
D. AOP的使用不仅提高了开发效率,而且增强了代码的可维护性
正确答案:C
答案解析:AOP不是OOP的替代品,而是一种补充技术,用于处理OOP中难以解决的横切关注点,如日志和事务管理。
5
(单选题)下列AOP专业术语中,用于表示切面与连接点的交叉点的是( )。
A. Joinpoint B. Pointcut C. Aspect D. Advice
正确答案:B
答案解析:jointpoint连接点。pointcut切入点,一般是某个函数。aspect切点,一般是某个类。advice通知/增强处理。
6
(单选题)下列选项的Spring AOP的XML元素,用于在目标方法执行前实施增强,可以应用于权限管理等功能的是( )。
- A. <aop:before>
- B. <aop:after>
- C. <aop:around>
- D. <aop:after-returning>
正确答案:A
7
(单选题)下列选项中,用于配置切点的注解是( )。
- A. @Aspect
- B. @Pointcut
- C. @Before
- D. @Around
正确答案:B
二. 多选题(共3题,16.7分)
8
(多选题)下列选项中,Spring AOP术语的描述正确的有( )。
A. Aspect:切面是指关注点(指类中重复的代码)形成的类,通常是指封装的、用于横向插入系统的功能类。
B. Joinpoint:连接点是程序执行过程中某个特定的节点
C. Pointcut:当某个连接点满足预先指定的条件时,AOP 就能够定位到这个连接点,在连接点处插入切面,该连接点也就变成了切入点。
D. Target:目标对象是指被插入切面的方法。
正确答案:ABCD
9
(多选题)下列选项中,对Spring AOP的描述正确的有( )。
A. AOP的全称是Aspect-Oriented Programming,即面向切面编程
B. AOP采取横向隔离机制,将分散在各个方法中的重复代码提取出来,这种采用横向隔离机制的方式,采用OOP思想是无法办到的
C. AOP是OOP的升级替代品
D. AOP的使用不仅提高了开发效率,而且增强了代码的可维护性
正确答案:ABD
10
(多选题)下列选项中,是Spring AOP的常用注解有( )。
- A. @Aspect
- B. @Pointcut
- C. @Before
- D. @Controller
正确答案:ABC
三. 判断题(共6题,33.6分)
11
(判断题)Spring AOP 允许使用基于注解的方式实现 AOP。
A. 对 B. 错
正确答案:对
12
(判断题)JDK动态代理可以实现无侵入式的代码扩展,并且可以在不修改源代码的情况下,增强某些方法。
A. 对 B. 错
正确答案:对
答案解析:除了JDK还有CGLib代理也一样。
13
(判断题)Spring AOP的实现机制分两种,一种是JDK动态代理,一种是CGLib动态代理。
A. 对 B. 错
正确答案:对
14
(判断题)JDK动态代理存在缺陷,它只能为接口创建代理对象,当需要为类创建代理对象时,就需要使用CGLib(Code Generation Library)动态代理。
A. 对 B. 错
正确答案:对
15
(判断题)CGLib动态代理采用底层的字节码技术,通过继承的方式动态创建代理对象。
A. 对 B. 错
正确答案:对
16
(判断题)在AOP专业术语中,切面是指要对哪些Joinpoint进行拦截。
A. 对 B. 错
正确答案:错
答案解析:切面是指重复代码所组成的类。 切入点才是对哪些joinpoint进行拦截的设置。
四. 填空题(共2题,11.2分)
17
(填空题)Spring AOP的常用实现方法有两种,分别是基于XML文件的实现和基于【】的实现。
正确答案:注解
18
(填空题)AOP的全称是Aspect-Oriented Programming,中文翻译是【】。
正确答案:面向切面编程