Spring AOP 习题练习

Spring AOP 习题练习

选择题
1.以下术语Spring AOP常用术语的有()。
A.Aspect
B.Joinpoint
C.Pointcut
D.Weaving
答案:ABCD

2.以下关于Spring AOP 的介绍错误的是()。
A.AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)
B.AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,这种采用横向抽取机制的方式,采用OOP思想是无法办到的
C.虽然AOP是一种新的编程思想,采取横向抽取机制,是OOP的升级替代品
D.目前最流行的AOP框架有两个,分别为Spring AOP和AspectJ
答案:C

3.以下关于Spring AOP 的介绍正确的是()。
A.AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)
B.AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,然后在程序编译或运行时,再将这些提取出来的代码应用到需要执行的地方
C.虽然AOP是一种新的编程思想,但却不是OOP的替代品,它只是OOP的延伸和补充
D.目前最流行的AOP框架有两个,分别为Spring AOP和AspectJ
答案:ABCD

4.下列有关JDK动态代理的描述,正确的有()。
A.JDK动态代理是通过java.lang.reflect.Proxy 类来实现的
B.对于使用业务接口的类,Spring默认会使用JDK动态代理来实现AOP
C.Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理
D.使用JDK动态代理的对象不必实现接口
答案:ABC

5.以下有关CGLIB代理相关说法正确的是()。
A.CGLIB代理的使用非常简单,但它还有一定的局限性——使用动态代理的对象必须实现一个或多个接口
B.如果要对没有实现接口的类进行代理,那么可以使用JDK代理
C.CGLIB是一个高性能开源的代码生成包,在使用时需要另外导入CGLIB所需要的包
D.Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理
答案:ABC

判断题
1.AspectJ是一个基于Java语言的AOP框架,从Spring2.0开始,Spring AOP引入了对AspectJ的支持,AspectJ扩展了Java语言,提供了一个专门的编译器,在编译时提供横向代码的织入()。
A 正确 B 错误
答案:A

2.目前最流行的AOP框架有两个,分别为Spring AOP和AspectJ()。
A 正确 B 错误
答案:A

3.AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,然后再将这些提取出来的代码应用到需要执行的地方, 是OOP的替代品()。
A 正确 B 错误
答案:B

4.AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)()。
A 正确 B 错误
答案:A

5.对于使用业务接口的类,Spring默认会使用CGLIB动态代理来实现AOP()。
A 正确 B 错误
答案:B

简答题
1.请简述AOP如何解决传统OOP思想可能出现的问题。
答案:在传统的业务处理代码中,通常都会进行事务处理、日志记录等操作。虽然使用OOP可以通过组合或者继承的方式来达到代码的重用,但如果要实现某个功能(如日志记录),同样的代码仍然会分散到各个方法中。这样,如果想要关闭某个功能,或者对其进行修改,就必须要修改所有的相关方法。这不但增加了开发人员的工作量,而且提高了代码的出错率。
为了解决这一问题,AOP思想随之产生。AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,然后在程序编译或运行时,再将这些提取出来的代码应用到需要执行的地方。这种采用横向抽取机制的方式,采用传统的OOP思想是无法办到的,因为OOP只能实现父子关系的纵向的重用。

2.AOP的专业术语包括Aspect、Joinpoint、Pointcut、Advice、Target Object、Proxy和Weaving,请对这些专业术语进行解释。
答案:Aspect(切面):切面通常是指封装的用于横向插入系统功能(如事务、日志等)的类。
Joinpoint(连接点):在程序执行过程中的某个阶段点。
Pointcut(切入点):是指切面与程序流程的交叉点,即那些需要处理的连接点。
Advice(通知/增强处理):AOP框架在特定的切入点执行的增强处理,即在定义好的切入点处所要执行的程序代码。
Target Object(目标对象):是指所有被通知的对象,也被称为被增强对象。
Proxy(代理):将通知应用到目标对象之后,被动态创建的对象。
Weaving(织入):将切面代码插入到目标对象上,从而生成代理对象的过程。

3.请对Spring的通知类型进行简要说明。
答案:Spring中主要包含5种通知类型,分别是环绕通知,前置通知,后置通知,异常通知和引介通知。其中,环绕通知表示在目标方法执行前后实施增强,可以应用于日志、事务管理等功能。前置通知表示在目标方法执行前实施增强,可以应用于权限管理等功能。后置通知表示在目标方法执行后实施增强,可以应用于关闭流、上传文件、删除临时文件等功能。异常通知表示在方法抛出异常后实施增强,可以应用于处理异常记录日志等功能。引介通知表示在目标类中添加一些新的方法和属性,可以应用于修改老版本程序(增强类)。

4.请简述进行JDBC数据库连接时dataSource配置的4个基本属性及作用。
答案:driverClassName:加载数据库的驱动类
url:数据库的连接地址
username:所连接的数据库的用户名
password:所连接的数据库的密码

欢迎大家交流学习

你可能感兴趣的:(java,spring)