JavaEE企业级应用开发教程 传智课后题答案

JavaEE企业级应用开发教程 传智课后题答案

  • 第一章(Spring的基本应用)
  • 第二章(Spring中的Bean)
  • 第三章(3-1)(Spring AOP)
  • 第三章(3-2)(Spring AOP)
  • 第四章(Spring的数据库开发)
  • 第五章(Spring的事务管理)
  • 第六章(初始MyBatis)
  • 第七章(MyBatis的核心配置)
  • 第八章(动态SQL)
  • 第九章(MyBatis的关联映射)
  • 第十章(Spring与MyBatis整合)
  • 第十一章(Spring MVC入门)
  • 第十二章(Spring MVC的核心类和注解)
  • 第十三章(数据绑定)
  • 第十四章(JSON数据交互和RESTful支持)
  • 第十五章(拦截器)
  • 第十六章(文件上传和下载)
  • 第十七章(SSM框架整合)

第一章(Spring的基本应用)

单选题
1、
下列选项中,不属于Spring框架优点的是()。

5分
A、提供强大的、可以有效减少页面代码的标签
B、声明式事务的支持
C、方便解耦、简化开发
D、方便集成各种优秀框架
参考答案 :A

2、
以下关于Spring核心容器相关说法错误的是()。

5分
A、Spring框架的所有功能都是通过其核心容器来实现的
B、创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理
C、ApplicationContext不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持
D、通常在Java项目中,会采用通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器的方式,而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成
参考答案 :A
答案说明 :Spring框架的主要功能是通过其核心容器来实现的
3、下列有关Spring框架的描述,错误的是()5分
A、Spring是Java Web开发框架
B、Spring是轻量级框架
C、Spring是开源框架
D、Spring是持久层框架
参考答案 : D

4、
以下有关Spring框架优点的说法正确的是()。

5分
A、Spring具有简单、可测试和松耦合等特点,从这个角度出发,Spring就是应用于任何Java应用的开发中;
B、Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性
C、Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,杜绝了组件之间的耦合性
D、Spring增加了Java EE开发中一些API的使用难度
参考答案 :B

5、
以下有关Spring的四个基础包说法正确的是()。

5分
A、Spring的四个基础包,它们分别对应Spring Web容器的四个模块
B、Spring的四个基础包有spring-core.RELEASE.jar、spring-beans-.RELEASE.jar、spring-context-.RELEASE.jar和spring-aop-.RELEASE.jar;
C、spring-context-.RELEASE.jar是所有应用都要用到的JAR包,它包含访问配置文件以及进行IoC或者DI操作相关的所有类
D、spring-core.RELEASE.jar包含Spring框架基本的核心工具类,Spring其它组件都要用到这个包里的类,是其它组件的基本核心
参考答案 : D

6、
Spring的核心容器是其他模块建立的基础,以下哪个不是该容器的组成模块()。

5分
A、Beans模块
B、Core模块
C、Context模块
D、AOP模块
参考答案 : D

多选题
7、
下列选项中,属于Spring框架优点的有()。

5分
A、方便解耦、简化开发
B、AOP编程的支持
C、方便集成各种优秀框架
D、声明式事务的支持
参考答案 :A,B,C,D
答案说明 :
8、
Spring框架压缩包解压后的目录中lib中的JAR包说明正确的是()。

5分
A、libs目录中的JAR包分为三类
B、以RELEASE.jar结尾的是Spring框架class文件的JAR包
C、以RELEASE-javadoc.jar结尾的是Spring框架API文档的压缩包
D、以RELEASE-sources.jar结尾的是Spring框架源文件的压缩包
参考答案 :A,B,C,D

9、下列有关Spring框架的描述,正确的有()5分
A、Spring是持久层框架
B、Spring是Java Web开发框架
C、Spring是开源框架
D、Spring是一个重量级框架
参考答案 :B,C

10、
Spring框架压缩包解压后的目录中内容说明正确的是()。

5分
A、docs文件夹中包含Spring的API文档和开发规范
B、libs文件夹中包含开发需要的JAR包和源码
C、schema文件夹中包含开发所需要的schema文件
D、spring.x.pdf中是使用手册
参考答案 :A,B,C
答案说明 :Spring压缩文件未提供pdf手册

判断题
11、
Spring不仅可以用于服务器端开发,也可以应用于任何Java应用的开发中()。

5分

×
参考答案 :对

12、Spirng框架的Beans模块提供了Spring框架的基本组成部分,包括IoC和DI功能()。5分

×
参考答案 :错

13、
Spring框架模块大体分为Core Container、Data Access/Integration、Web、IoC(Aspect Oriented Programming)、Instrumentation、Messaging和Test()。

5分

×
参考答案 :错
答案说明 :是AOP不是IoC
14、
在传统模式下,采用“new 被调用者”的方式来创建对象会导致调用者与被调用者之间的耦合性增加,不利于后期项目的升级和维护()。

5分

×
参考答案 :对

15、Spring对服务器端三层体系架构的每一层都提供了技术支持()5分

×
参考答案 :对

16、
Spring配置文件的名称可以自定义,通常在实际开发中,都会将配置文件命名为applicationContext.xml()。

5分

×
参考答案 :对

17、
通常在Java项目中,会采用通过FileSystemXmlApplicationContext类来实例化ApplicationContext容器的方式()。

5分

×
参考答案 :错
答案说明 :会采用通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器的方式

18、Spring框架可以和Struts2和Hibernate框架进行整合()5分

×
参考答案 :对
答案说明 :
19、Spring是一个轻量级的开源框架()5分

×
参考答案 :对
答案说明 :
20、Spring具有简单、可测试和松耦合等特点()5分

×
参考答案 :对
答案说明 :

第二章(Spring中的Bean)

单选题
1、
以下有关Bean的singleton作用域说法错误的是()。

2分
A、prototype是Spring容器默认的作用域
B、对需要保持会话状态的Bean(如Struts2的Action类)应该使用prototype作用域
C、在使用prototype作用域时,Spring容器会为每个对该Bean的请求都创建一个新的实例
D、要将Bean定义为prototype作用域,只需在配置文件中将< bean>元素的scope属性值设置为prototype即可
参考答案 :A

2、
以下有关Bean的装配方式说法正确的是()。

2分
A、Spring容器支持多种形式的Bean的装配方式,如基于XML的装配、基于注解(Annotation)的装配和自动装配(其中最常用的是基于XML的装配);
B、Spring提供了3种基于XML的装配方式:设值注入、构造注入和属性注入;
C、在Spring实例化Bean的过程中,Spring首先会调用Bean的默认构造方法来实例化Bean对象,然后通过反射的方式调用setter方法来注入属性值;
D、设值注入要求一个Bean必须提供一个有参构造方法并且为需要注入的属性提供对应的setter方法。
参考答案 :C
答案说明 :设值注入要求一个Bean必须提供一个无参构造方法
3、
Spring容器支持多种形式的Bean的装配方式,不包括有()。

2分
A、基于XML的装配
B、基于properties的装配
C、基于注解(Annotation)的装配
D、自动装配
参考答案 :B

4、
Spring的< bean>元素中的autowire属性取值不包括以下()。

2分
A、default
B、byName
C、byType
D、byId
参考答案 : D

5、
以下有关Spring中的Bean的相关说法正确的是()。

2分
A、Spring可以被看做是一个大型工厂,这个工厂的作用就是生产和管理Spring容器中的Bean
B、Spring中最常使用的就是Properties格式的配置方式,这种配置方式通过Properties文件来注册并管理Bean之间的依赖关系
C、在Spring中,XML配置文件的可以包含多个< beans>,< beans>中包含了多个< bean>子元素,每一个< bean>子元素定义了一个Bean
D、如果在Bean中未指定id和name,则Spring无法获取Bean
参考答案 :A

6、
以下关于Spring对Bean生命周期的管理说法错误的是()。

2分
A、Spring容器可以管理singleton作用域的Bean的生命周期, Spring能够精确的知道该Bean何时被创建,何时初始化完成,以及何时被销毁
B、对于prototype作用域的Bean,Spring只负责创建,当容器创建了Bean实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期
C、每次客户端请求singleton作用域的Bean时,Spring容器都会创建一个新的实例,并且不会管那些被配置成singleton作用域的Bean的生命周期。
D、了解Bean的生命周期的意义就在于,可以在某个Bean生命周期的某些指定时刻完成一些相关操作
参考答案 :C

7、
以下有关Spring中Bean的作用域说法正确的是()。

2分
A、Spring 4.3中为Bean的实例定义了5种作用域
B、使用prototype定义的Bean在Spring容器中将只有一个实例,也就是说,无论有多少个Bean引用它,始终将指向同一个对象
C、每次通过Spring容器获取的singleton定义的Bean时,容器都将创建一个新的Bean实例
D、globalSession:在一个全局的HTTP Session中,容器会返回该Bean的同一个实例。
参考答案 : D

8、
以下哪些不属于Spring 4.3版本中Bean的作用域()

2分
A、application
B、request
C、response
D、globalSession
参考答案 :C

9、
下列选项中,不属于Spring中实例化Bean的方式的是()。

2分
A、构造器实例化
B、静态工厂方式实例化
C、实例工厂方式实例化
D、抽象方法实例化
参考答案 : D

10、
Spring中定义了一系列的注解,以下有关其常用的注解说明错误的是()。

2分
A、@Autowired用于对Bean的属性变量、属性的setter方法及构造方法进行标注,配合对应的注解处理器完成Bean的自动配置工作,默认按照Bean的名称进行装配。
B、@Repository用于将数据访问层(DAO层)的类标识为Spring中的Bean
C、@Service通常作用在业务层(Service层),用于将业务层的类标识为Spring中的Bean
D、@Controller通常作用在控制层(如Spring MVC的Controller),用于将控制层的类标识为Spring中的Bean
参考答案 :A

多选题
11、
在Spring配置文件中,Bean的作用域是通过< bean>元素的scope属性来指定的,该属性值可以设值包括有()。

5分
A、request
B、response
C、session
D、application
参考答案 :A,C,D

12、
以下有关< bean>元素的属性及子元素说明正确的是()。

5分
A、id是一个Bean的唯一标识符,Spring容器对Bean的配置、管理都通过该属性来完成
B、name :Spring容器同样可以通过此属性对容器中的Bean进行配置和管理,name属性中可以为Bean指定多个名称,每个名称之间用逗号或分号隔开
C、class属性指定了Bean的具体实现类,它必须是一个完整的类名
D、scope用来设定Bean实例的作用域,其属性值有5种
参考答案 :A,B,C
答案说明 :最近版本Spring框架scope属性值有7种
13、
Spring中定义了一系列的注解,常用的注解有()。

5分
A、@Autowired
B、@Repository
C、@Service
D、@Controller
参考答案 :A,B,C,D

14、
以下哪些属于实例化Bean的方式()。

5分
A、构造器实例化
B、静态工厂方式实例化
C、实例工厂方式实例化
D、抽象方法实例化
参考答案 :A,B,C

判断题
15、
singleton是Spring容器默认的作用域()。

1分


参考答案 :对
答案说明 :
16、
Spring容器支持多种形式的Bean的装配方式,如基于XML的装配、基于注解(Annotation)的装配和自动装配(其中最常用的是基于XML的装配)()。

1分


参考答案 :错
答案说明 :
17、
构造器实例化是指Spring容器通过Bean对应类中默认的无参构造方法来实例化Bean()。

1分


参考答案 :对

18、
实例化Bean有三种方式,分别为构造器实例化、静态工厂方式实例化和实例工厂方式实例化(其中最常用的是构造器实例化)()。

1分


参考答案 :对

19、
对于prototype作用域的Bean,Spring只负责创建,当容器创建了Bean实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期()。

1分


参考答案 :对

20、
在使用prototype作用域时,Spring容器为每个对该Bean的请求都只创建一个实例()。

1分


参考答案 :错

21、Spring提供了3种基于XML的装配方式:设值注入、构造注入和属性注入()。1分


参考答案 :错

22、
在配置文件中,通常一个普通的Bean只需要定义id(或name)和class 两个属性即可()。

1分


参考答案 :对

23、
在Spring中,要想使用容器中的Bean,也需要实例化Bean()。

1分


参考答案 :对

24、
prototype是Spring容器默认的作用域()。

1分


参考答案 :错

填空题
25、对于_______作用域的Bean,Spring只负责创建,当容器创建了Bean实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期。2分
参考答案 :【prototype】

26、Spring实例化Bean有三种方式,分别为构造器实例化、静态工厂方式实例化和________。2分
参考答案 :【实例工厂方式实例化】

27、Spring提供了2种基于XML的装配方式:_______ 和_______。2分
参考答案 :【设值注入(Setter Injection)】【构造注入(Constructor Injection)】

28、所谓自动装配,就是将一个Bean自动的注入到到其他Bean的_____中。2分
参考答案 :【Property】

29、
_______ 实例化Bean时,其class属性指定的是_______,同时还需要使用factory-method属性来指定所创建的实例化bean的方法。

2分
参考答案 :【静态工厂类】【静态工厂方法】
答案说明 :
简答题
30、Bean的作用域是通过元素的scope属性来指定的,请说出该属性值有哪些。10分
我的答案:singleton、prototype 、request、session、 global session、applicaton、websocket
参考答案 :singleton、prototype、request、session、globalSession、application、websocket
答案说明 :
31、请简述基于XML的装配方式中设值注入的要求。10分
我的答案:Bean类必须有一个无参构造方法,且必须为属性提供setter方法
参考答案 :
Spring中基于XML的装配方式中设值注入需要满足以下两点要求:

1、Bean类必须提供一个默认的无参构造方法。

2、Bean类必须为需要注入的属性提供对应的setter方法。

32、请简述使用静态工厂方式实例化Bean所在配置文件的配置方式。10分
我的答案:
创建名为Bean的Java类;

创建一个Java工厂类,在类中使用静态方法获取Bean实例;

创建Spring配置文件beans2.xml,并配置工厂类Bean;
创建测试类,测试程序。

参考答案 :在配置文件中,首先通过元素配置一个Bean,然后通过class属性指定其对应的静态工厂实现类。由于这种方式配置Bean后,Spring容器不知道哪个是你所需要的工厂方法,所以需要增加factory-method属性来告诉Spring容器。

33、请简述使用实例工厂方式实例化Bean所在配置文件的配置方式。10分
我的答案:
配置工厂

使用factory-bean属性指向配置的实例工厂,使用factory-method属性确定使用工厂中的方法

参考答案 :在配置文件中,首先配置了一个工厂Bean,然后配置需要实例化的Bean。在需要实例化的Bean中,使用factory-bean属性指向配置的实例工厂,该属性值就是上一个工厂Bean的id。使用factory-method属性来确定使用工厂中的方法。

第三章(3-1)(Spring AOP)

单选题
1、
下列有关AOP专业术语中,用于表示切面与程序流程的交叉点的是()。

10分
A、Joinpoint
B、Pointcut
C、Aspect
D、Advice
参考答案 :B

2、
以下有关CGLIB代理相关说法正确的是()。

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

3、
下列有关AOP专业术语中,用于指那些被拦截到的点的是()。

10分
A、Joinpoint
B、Pointcut
C、Aspect
D、Advice
参考答案 :A

4、
以下关于Spring AOP 的介绍错误的是()。

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

多选题
5、
以下关于Spring AOP 的介绍正确的是()。

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

6、
下列有关JDK动态代理的描述,正确的有()。

15分
A、JDK动态代理是通过java.lang.reflect.Proxy 类来实现的
B、对于使用业务接口的类,Spring默认会使用JDK动态代理来实现AOP
C、Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理
D、使用JDK动态代理的对象不必实现接口
参考答案 :A,B,C

7、以下术语Spring AOP常用术语的有()。15分
A、Aspect
B、Joinpoint
C、Pointcut
D、Weaving
参考答案 :A,B,C,D

判断题
8、
Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期间通过代理方式向目标类织入增强的代码()。

1分


参考答案 :对

9、
AOP专业术语中,切面是指要对哪些Joinpoint进行拦截()。1分


参考答案 :错

10、
AOP手动使用代理模式有两个典型的例子,分别为JDK动态代理和CGLIB代理()。

1分


参考答案 :对

11、
Spring AOP中的代理就是由AOP框架动态生成的一个对象,该对象可以作为目标对象使用()。

1分


参考答案 :对

12、
AOP专业术语中,Target是指代理的目标对象()。

1分


参考答案 :对

13、CGLIB是一个高性能开源的代码生成包,它采用非常底层的字节码技术,对指定的目标类生成一个子类,并对子类进行增强,在使用时需要另外导入CGLIB所需要的包()。1分


参考答案 :错

14、
如果要对没有实现接口的类进行代理,那么可以使用CGLIB代理()。

1分


参考答案 :对

15、使用CGLIB创建代理类,该代理类需要实现MethodInterceptor接口,并实现接口中的intercept()方法()。1分


参考答案 :对

16、
AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)()。

1分


参考答案 :对

17、
AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,然后再将这些提取出来的代码应用到需要执行的地方, 是OOP的替代品()。

1分


参考答案 :错

填空题
18、AOP采取______,将分散在各个方法中的重复代码提取出来,然后在程序编译或运行时,再将这些提取出来的代码应用到需要执行的地方。1分
参考答案 :【横向抽取机制】

19、JDK动态代理是通过java.lang.reflect.Proxy 类来实现的,我们可以调用Proxy类的______方法来创建代理对象。1分
参考答案 :【newProxyInstance()】

20、Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理,对于使用业务接口的类,Spring默认会使用______来实现AOP。1分
参考答案 :【JDK动态代理】

21、AOP手动使用代理模式有两个典型的例子,分别为JDK动态代理和
_______。1分
参考答案 :【CGLIB代理】

22、
______的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)。1分
参考答案 :【AOP】

第三章(3-2)(Spring AOP)

单选题
1、
以下哪种类型不是Spring中的通知类型()。

2分
A、异常通知
B、前置通知
C、后置通知
D、最终通知
参考答案 : D

2、
以下不属于ProxyFactoryBean类中的常用可配置属性的是()。

2分
A、target
B、proxyInterfaces
C、targetClass
D、interceptorNames
参考答案 :C

3、
关于AspectJ注解的介绍,说法错误的是()。

A、@Aspect用于定义一个切面
B、@Pointcut用于定义切入点表达式
C、@Before用于定义前置通知,相当于BeforeAdvice
D、@After用于定义后置通知,相当于AfterReturningAdvice
参考答案 : D

多选题
4、
以下有关Spring中的通知类型及说法正确的是()。

4分
A、MethodInterceptor:在目标方法执行前后实施增强,可以应用于日志、事务管理等功能
B、MethodBeforeAdvice: 在目标方法执行前实施增强,可以应用于权限管理等功能
C、AfterReturningAdvice: 在目标方法执行后实施增强,可以应用于关闭流、上传文件、删除临时文件等功能
D、ThrowsAdvice: 在方法抛出异常后实施增强,可以应用于处理异常记录日志等功能
参考答案 :A,B,C,D

5、
以下有关基于XML的声明式AspectJ及配置说法正确的是()。

4分
A、基于XML的声明式AspectJ是指通过XML文件来定义切面、切入点及通知,所有的切面、切入点和通知都必须定义在< aop:config>元素内
B、Spring配置文件中的< beans>元素下可以1个< aop:config>元素,一个< aop:config>元素中可以包含属性和子元素
C、< aop:config>元素的子元素包括< aop:pointcut>、< aop:advisor>和< aop:aspect> ,在配置时,这3个子元素必须按照此顺序来定义
D、使用AspectJ进行开发还需要导入AspectJ框架相关的JAR包
参考答案 :A,C,D
答案说明 :Spring配置文件中的< beans>元素下可以多个< aop:config>元素

6、以下关于ProxyFactoryBean类中的常用可配置属性及说法正确的是()。

A、target:代理的目标对象
B、proxyInterfaces: 代理要实现的接口
C、proxyTargetClass: 是否对类代理而不是接口,设置为false时,使用CGLIB代理
D、interceptorNames: 需要织入目标的Advice
参考答案 :A,B,D

判断题
7、
使用AspectJ实现AOP有两种方式:一种是基于XML的声明式AspectJ,另一种是基于注解的声明式AspectJ()。



参考答案 :对

8、
在Spring中,使用ProxyFactoryBean是创建AOP代理的唯一方式()。

3分


参考答案 :错

9、
如果在同一个连接点有多个通知需要执行,那么在同一切面中,目标方法之前的前置通知和环绕通知的执行顺序是未知的,目标方法之后的后置通知和环绕通知的执行顺序也是未知的()。

3分


参考答案 :对

10、
Spring中的AOP代理默认就是使用CGLIB代理的方式来实现的()。

3分


参考答案 :错

11、
AspectJ框架中的注解@After用于定义最终final通知,不管是否异常,该通知都会执行()。

3分


参考答案 :对

12、Spring中的通知按照在目标类方法的连接点位置,可以分为4种类型()。3分


参考答案 :错

13、
AspectJ框架为AOP的实现提供了一套注解,用以取代Spring配置文件中为实现AOP功能所配置的臃肿代码()。

3分


参考答案 :对

14、
AspectJ是一个基于Java语言的AOP框架,它提供了强大的AOP功能()。

3分


参考答案 :对

15、
ProxyFactoryBean是FactoryBean接口的实现类,FactoryBean负责实例化一个Bean,而ProxyFactoryBean负责为其他Bean创建代理实例()。

3分


参考答案 :对

16、
Spring配置文件中的< beans>元素下可以包含多个< aop:config>元素,一个< aop:config>元素中又可以包含属性和子元素,其子元素包括< aop:pointcut>、< aop:advisor>和< aop:aspect>()。

3分


参考答案 :对

17、
在Spring中,使用ProxyFactoryBean是创建AOP代理的最基本方式()。

3分


参考答案 :对

18、
Spring 3.0以后,Spring AOP引入了对AspectJ的支持,并允许直接使用AspectJ进行编程,而Spring自身的AOP API也尽量与AspectJ保持一致()。

3分


参考答案 :错

填空题
19、使用AspectJ实现AOP有两种方式:一种是_____,另一种是基于注解的声明式AspectJ。3分
参考答案 :【基于XML的声明式AspectJ】

20、AspectJ框架中注解______用于定义切入点表达式,在使用时还需定义一个包含名字和任意参数的方法签名来表示切入点名称。3分
参考答案 :【@Pointcut】

21、在Spring的配置文件中,切入点是通过_____元素来定义的。3分
参考答案 :【< aop:pointcut>】
答案说明 :
22、在Spring配置文件中,< aop:aspect>子元素的pointcut-ref属性用于指定一个已经存在的_______。3分
参考答案 :【切入点名称】

23、Spring配置文件中的< beans>元素下可以包含多个< aop:config>元素,一个< aop:config>元素中又可以包含属性和子元素,其子元素包括< aop:pointcut>、< aop:advisor>和_______。3分
参考答案 :【< aop:aspect>】

24、Spring中的AOP代理默认就是使用______的方式来实现的。3分
参考答案 :【JDK动态代理】

25、
_______: 在目标方法执行后实施增强,可以应用于关闭流、上传文件、删除临时文件等功能。3分
参考答案 :【AfterReturningAdvice(后置通知)】

26、
_______注解用于定义一个切面。3分
参考答案 :【@Aspect】

27、在Spring中,使用______是创建AOP代理的基本方式。3分
参考答案 :【ProxyFactoryBean】

28、基于XML的声明式AspectJ是指通过XML文件来定义切面、切入点及通知,所有的切面、切入点和通知都必须定义在_______元素内。3分
参考答案 :【< aop:config>】

简答题
29、请说出Spring AOP中切入点表达式的基本格式,并做说明。8分
我的答案:
参考答案 :
Spring AOP中切入点表达式的基本格式如下:

execution(modifiers-pattern? ret-type-pattern declaring-type-pattern?name-pattern(param-pattern) throws-pattern?)

上述格式中,各部分说明如下:

l modifiers-pattern:表示定义的目标方法的访问修饰符;

l ret-type-pattern:表示定义的目标方法的返回值类型;

l declaring-type-pattern:表示定义的目标方法的类路径;

l name-pattern:表示具体需要被代理的目标方法;

l param-pattern:表示需要被代理的目标方法包含的参数;

l throws-pattern:表示需要被代理的目标方法抛出的异常类型。

其中带有问号(?)的部分,如modifiers-pattern、declaring-type-pattern和throws-pattern表示可配置项;而其他部分属于必须配置项。

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

第四章(Spring的数据库开发)

单选题
1、
Spring JDBC模块主要由4个包组成,其中不包括()。

4分
A、core(核心包)
B、dataSource(数据源包)
C、driverClass(数据库驱动包)
D、support(支持包)
参考答案 :C

2、JdbcTemplate的直接父类是()4分
A、JdbcAccessor
B、JdbcOperations
C、JdbcSupper
D、Object
参考答案 :A

3、下面描述中,关于query()方法说法错误的是()4分
A、List query(String sql, RowMapper rowMapper)会执行String类型参数提供的SQL语句,并通过RowMapper返回一个List类型的结果
B、List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper)会根据String类型参数提供的SQL语句创建PreparedStatement对象,通过RowMapper将结果返回到List中
C、List query(String sql, Object[] args, RowMapper rowMapper)会将args参数绑定到SQL语句中,并通过RowMapper返回一个Object类型的单行记录
D、queryForList(String sql,Object[] args, class elementType)可以返回多行数据的结果,但必须是返回列表,elementType参数返回的是List元素类型
参考答案 :C

4、以下有关Spring的JDBC模块说法错误的是()。4分
A、Spring的JDBC模块负责数据库资源管理和数据处理;
B、JDBC是Spring数据访问/集成中的重要模块;
C、Spring框架降低了包括JDBC的使用难度;
D、Spring JDBC的核心类是JdbcTemplate。
参考答案 :A
答案说明 :Spring的JDBC模块负责数据库资源管理和错误处理

5、下面关于update()方法描述错误的是()4分
A、update()方法可以完成插入、更新、删除和查询数据的操作
B、在JdbcTemplate类中,提供了一系列的update()方法
C、update()方法执行后,会返回受影响的行数
D、update()方法返回的参数是int类型
参考答案 :A
答案说明 :不能查询数据

6、JdbcTemplate类包含在Spring JDBC模块的哪个包中()4分
A、核心包
B、数据源包
C、对象包
D、支持包
参考答案 :A

多选题
7、Spring JDBC模块core包中包含的类有()8分
A、JdbcTemplate
B、SimpleJdbcInsert
C、SimpleJdbcCall
D、NamedParameterJdbcTemplate
参考答案 :A,B,C,D

8、
以下有关JdbcTemplate类中常用的update()方法说明正确的是()。

8分
A、int update(String sql):该方法是最简单的update方法重载形式,它直接执行传入的SQL语句,并返回受影响的行数
B、int update(PreparedStatementCreator psc):该方法执行从PreparedStatementCreator返回的语句,然后返回受影响的行数
C、int update(String sql,PreparedStatementSetter pss): 该方法通过PreparedStatementSetter设置SQL语句中的参数,并返回受影响的行数
D、int update(String sql,Object… args): 该方法使用Object…设置SQL语句中的参数,要求参数不能为NULL,并返回受影响的行数
参考答案 :A,B,C,D

9、
以下关于Spring框架中JdbcTemplate的说法正确的是()。

8分
A、针对数据库的操作,Spring框架提供了JdbcTemplate类
B、JdbcTemplate类是Spring JDBC的核心类
C、JdbcTemplate继承自抽象类JdbcAccessor,同时实现了JdbcOperations接口
D、JdbcOperations接口定义了在JdbcTemplate类中可以使用的操作集合,包括添加、修改、查询和删除等操作
参考答案 :A,B,C,D

10、
以下有关JdbcTemplate中常用的query()方法说法正确的是()。

8分
A、List query(String sql, RowMapper rowMapper)执行String类型参数提供的SQL语句,并通过RowMapper返回一个List类型的结果
B、List query(String sql,Object[] args,RowMapper rowMapper)使用Object[]的值来设置SQL语句中的参数值,采用RowMapper回调方法可以直接返回List类型的数据
C、queryForObject(String sql,RowMapper rowMapper,Object… args) 将args参数绑定到SQL语句中,并通过RowMapper返回一个Object类型的单行记录
D、queryForList(String sql,Object[] args, class elementType)该方法可以返回多行数据的结果,但必须是返回列表,elementType参数返回的是List元素类型。
参考答案 :A,B,C,D

11、
以下Spring JDBC模块的主要包及说明正确的是()。

8分
A、core:包含了JDBC的核心功能
B、dataSource:访问数据源的实用工具类
C、object:以面向对象的方式访问数据库
D、support:包含了core和dataSource包的支持类
参考答案 :A,B,C
答案说明 :support包含了core和object包的支持类
12、
根据测试目的的不同,可以将软件测试分为()。

8分
A、单元测试
B、集成测试
C、确认测试
D、系统测试
参考答案 :A,B,C,D

13、
以下有关Spring配置文件中dataSource数据源配置时的属性说明正确的是()。

8分
A、driverClassName:所使用的驱动名称,对应驱动JAR包中的Driver类
B、url:数据源所在地址
C、username:访问数据库的用户名
D、password:访问数据库的密码
参考答案 :A,B,C,D

判断题
14、
JdbcTemplate类中的int update(String sql)方法是最简单的update方法重载形式,它直接执行传入的SQL语句,并返回受影响的行数()。

2分


参考答案 :对

15、
Spring JDBC模块主要由4个包组成,分别是core(核心包)、dataSource(数据源包)、object(对象包)和support(支持包)()。

2分


参考答案 :对

16、
JdbcTemplate类中的update()方法可以完成查询、插入、更新和删除数据的操作()。

2分


参考答案 :错

17、在使用Junit进行单一测试时,JUnit视图窗口的进度条为绿色表明运行结果正确;如果进度条为红色则表示有错误,并且会在窗口中显示所报的错误信息()。2分


参考答案 :对

18、
JdbcTemplate类的继承关系十分简单。它继承自抽象类JdbcAccessor,同时实现了JdbcOperations接口()。

2分


参考答案 :对

19、
JdbcTemplate类中的List query(String sql, RowMapper rowMapper) 执行String类型参数提供的SQL语句,并通过RowMapper返回一个List类型的结果()。

2分


参考答案 :对

20、在使用JdbcTemplate进行单个查询和集合查询时,封装的RowMapper对象方法一样。2分


参考答案 :对

21、
在JdbcTemplate类中execute(String sql)方法能够完成执行SQL语句的功能()。

2分


参考答案 :对

22、
JdbcOperations接口定义了在JdbcTemplate类中可以使用的操作集合,包括添加、修改、查询和删除等操作()。

2分


参考答案 :对

23、
Spring的JDBC模块负责数据库资源管理和错误处理()。

2分


参考答案 :对

第五章(Spring的事务管理)

单选题
1、以下关于< tx:method>元素的属性描述错误的是()。5分
A、name属性为可选属性,它指定了与事务属性相关的方法名
B、propagation用于指定事务的传播行为,默认值为REQUIRED
C、isolation用于指定事务的隔离级别,其默认值为DEFAULT
D、read-only用于指定事务是否只读,其默认值为false
参考答案 :A
答案说明 :name属性为必选属性
2、
以下有关Spring事务管理及核心接口说法错误的是()。

5分
A、PlatformTransactionManager接口是Spring提供的平台事务管理器,主要用于管理事务
B、TransactionDefinition接口是事务定义(描述)的对象,该对象中定义了事务规则,并提供了获取事务相关信息的方法
C、TransactionStatus接口是事务的状态,它描述了某一时间点上事务的状态信息
D、在事务管理过程中,传播行为可以控制是否需要创建事务以及如何创建事务,通常情况下,对于数据的查询、插入、更新和删除操作,必须进行事务管理
参考答案 : D

3、
以下有关事务管理方式相关说法错误的是()。

5分
A、Spring中的事务管理分为两种方式:一种是传统的编程式事务管理,另一种是声明式事务管理
B、编程式事务管理:是通过AOP技术实现的事务管理,就是通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚
C、声明式事务管理:其主要思想是将事务管理作为一个“切面”代码单独编写,然后通过AOP技术将事务管理的“切面”代码植入到业务目标类中
D、声明式事务管理最大的优点在于开发者无需通过编程的方式来管理事务,只需在配置文件中进行相关的事务规则声明,就可以将事务规则应用到业务逻辑中
参考答案 :B

4、以下有关Spring中TransactionStatus接口的方法及说明错误的是()。5分
A、flush()刷新事务
B、isCompleted()获取事务是否完成
C、isNewTransaction()获取是否是新事务
D、setFallbackOnly()设置事务回滚
参考答案 : D
答案说明 :setRollbackOnly()设置事务回滚
5、下列选项中,哪一个不是Spring中事务管理的核心接口()5分
A、PlatformTransactionManager
B、TransactionDefinition
C、TransactionStatus
D、TransactionManager
参考答案 : D

6、
以下基于XML方式的声明式事务管理配置文件中< tx:advice>元素的子元素< tx:method>属性描述错误的是()。

5分
A、name:该属性为必选属性,它指定了与事务属性相关的方法名
B、propagation:用于指定事务的传播行为,它的默认值为SUPPORTS
C、isolation:该属性用于指定事务的隔离级别,其默认值为DEFAULT
D、read-only:该属性用于指定事务是否只读,其默认值为false
参考答案 :B
答案说明 :它的默认值为REQUIRED
7、
以下关于@Transactional注解可配置的参数信息及秒正确的是()。

5分
A、value用于指定需要使用的事务管理器,默认为"";
B、read-only用于指定事务是否只读,默认为true;
C、isolation用于指定事务的隔离级别,默认为Isolation.READ_COMMITTED;
D、propagation用于指定事务的传播行为,默认为Propagation. SUPPORTS;
参考答案 :A
答案说明 :
read-only默认为false;

isolation默认为Isolation.DEFAULT;

propagation默认为Propagation.REQUIRED.
多选题
8、PlatformTransactionManager接口常见的几个实现类有()。7分
A、DataSourceTransactionManager
B、HibernateTransactionManager
C、MybatisTransactionManager
D、JtaTransactionManager
参考答案 :A,B,D

9、
以下属于基于XML方式的声明式事务管理配置文件中< tx:advice>元素的子元素< tx:method>的属性有()。

7分
A、name
B、propagation
C、isolation
D、read-only
参考答案 :A,B,C,D

10、TransactionDefinition接口提供的获取事务相关信息的方法有()。7分
A、getName()
B、getIsolationLevel()
C、getPropagationBehavior()
D、getTimeout()
参考答案 :A,B,C,D

11、以下哪些属于< tx:method>元素中的常用属性()。7分
A、name
B、propagation
C、isolation
D、timeout
参考答案 :A,B,C,D

12、以下哪些属于@Transactional注解的可配置参数()。7分
A、value
B、transactionManager
C、isolation
D、propagation
参考答案 :A,B,C,D

判断题
13、
Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于Annotation的方式()。

2分


参考答案 :对

14、
TransactionDefinition接口是事务定义对象,提供事务相关信息获取的方法()。

2分


参考答案 :对

15、
Spring的声明式事务管理还可以通过Annotation(注解)的方式来实现,这种方式的使用非常简单()。

2分


参考答案 :对

16、< tx:method>元素的属性timeout用于指定事务超时的时间,其默认值为-1,即永不超时。2分


参考答案 :对

17、
编程式事务管理是通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚()。

2分


参考答案 :对

18、对数据库数据的插入、更新、删除和查询操作,都必须进行事务管理。2分


参考答案 :错

19、
编程式事务管理:是通过AOP技术实现的事务管理()。

2分


参考答案 :错

20、PlatformTransactionManager接口中操作事务的方法有getTransaction()、commit()和fallback()方法。2分


参考答案 :错
答案说明 :是rollback()方法
21、在事务管理过程中,传播行为可以控制是否需要创建事务以及如何创建事务。2分


参考答案 :对

22、注解@Transactional与tx:method元素中的事务属性基本是对应的,并且其含义也基本相似。2分


参考答案 :对

23、
在Spring的所有JAR包中,包含一个名为spring-tx-4.3.6.RELEASE的JAR包,该包就是Spring提供的用于事务管理的依赖包()。

2分


参考答案 :对
答案说明 :
24、
Spring中的事务管理分为两种方式:一种是传统的编程式事务管理,另一种是声明式事务管理()。

2分


参考答案 :对

25、
基于XML方式的声明式事务管理是通过在配置文件中配置事务规则的相关声明来实现的。()。

2分


参考答案 :对

26、
Spring的事务管理简化了传统的事务管理流程,并且在一定程度上减少了开发者的工作量()。

2分


参考答案 :对

27、
基于XML方式的声明式事务管理是通过在配置文件中配置事务规则的相关声明来实现的()。

2分


参考答案 :对

第六章(初始MyBatis)

单选题
1、
使用ORM框架后,应用程序不再直接访问底层数据库,而是以()的方式来操作持久化对象(PO,即Persisent Object)。

2分
A、面向业务
B、Hibernate
C、面向对象
D、MyBatis
参考答案 :C
答案说明 :
2、
有关MyBatis工作原理说法错误的是()。

2分
A、MyBatis的全局配置文件配置了MyBatis的运行环境等信息,其中主要内容是获取数据库连接
B、MyBatis映射文件中配置了操作数据库的SQL语句,需要在MyBatis的全局配置文件中加载才能执行
C、可以通过MyBatis的环境等配置信息构建会话对象SqlSession
D、SqlSession对象,该对象中包含了执行SQL的所有方法
参考答案 :C
答案说明 :通过MyBatis的环境等配置信息构建的是会话工厂SqlSessionFactory
3、
MyBatis框架下载并解压后,有关mybatis-3.x的文件夹内容说明正确的是()。

2分
A、lib文件下就属于MyBatis框架开发的所有JAR包
B、mybatis-3.x.word属于MyBatis使用手册
C、其中mybatis-3.x.jar属于MyBatis核心包
D、以上说发都错误
参考答案 :C
答案说明 :
4、
关于MyBatis模糊查询中进行SQL字符串拼接时,说法错误的是()。

2分
A、使用“${}”进行SQL字符串拼接时,无法防止SQL注入问题
B、可以使用MySQL中的concat()函数进行字符串拼接
C、使用MySQL中的concat()函数进行字符串拼接,也无法防止SQL注入
D、使用MySQL中的concat()函数进行字符串拼接,导致数据库移植性变差
参考答案 :C
答案说明 :
5、
MyBatis的删除操作有关说发错误的是()。

2分
A、MyBatis的删除操作在映射文件中是通过配置元素来实现的
B、MyBatis的删除操作也需要进行事务提交
C、MyBatis的删除操作执行了SqlSession的delete()方法
D、MyBatis的删除操作和添加操作时,也需要封装整个实体类
参考答案 : D
答案说明 :
6、
MyBatis的更新操作有关说发错误的是()。

2分
A、MyBatis的更新操作在映射文件中是通过配置< update>元素来实现的
B、MyBatis的更新操作也需要进行事务提交
C、MyBatis的更新操作执行了SqlSession的update()方法
D、MyBatis的更新操作和添加操作时,只需要将insert()方法改为updat()方法即可
参考答案 : D
答案说明 :需要id
多选题
7、
MyBatis框架对比与Hibernate框架的说明正确的是( )。

8分
A、使用MyBatis手动编写SQL要比使用Hibernate的工作量大
B、MyBatis可以配置动态SQL并优化SQL
C、MyBatis更新数据时,需要发送所有字段;不支持存储过程
D、对于一些复杂的和需要优化性能的项目来说,使用MyBatis更加合适
参考答案 :A,B,D
答案说明 :选项C属于Hibernate的特点
8、
在MyBatis框架官网下载地址有几个下载链接,关于这三个下载链接说明正确的是()。

8分
A、mybatis-3.x.zip是windows系统下MyBatis框架的压缩包
B、mybatis-3.x.tar.zip是Linux系统下MyBatis框架的压缩包
C、Source code(zip)是windows系统下MyBatis框架的源码包
D、Source code(tar.gz)是Linux系统下MyBatis框架的源码包
参考答案 :A,C,D
答案说明 :官网下载网址下只有3个下载链接,没有B选项
9、
MappedStatement对象会对用户执行SQL语句的输入参数进行定义,这些参数类型可以是()。

8分
A、Map
B、List类型
C、基本类型
D、POJO类型
参考答案 :A,B,C,D
答案说明 :
10、
MyBatis入门程序中添加操作有关说法正确的是()。

8分
A、在MyBatis的映射文件中,添加操作是通过< insert>元素来实现的
B、在MyBatis的映射文件中,添加操作的parameterType必须是PO类型
C、在MyBatis添加操作使用了SqlSession的add()方法
D、在MyBatis添加操作需要进行事务提交
参考答案 :A,D
答案说明 :
11、
入门程序中MyBatis的全局配置文件中主要编写的内容有()。

8分
A、数据库环境配置
B、JDBC事务管理
C、映射文件路径配置
D、缓存插件配置
参考答案 :A,B,C
答案说明 :
判断题
12、
MyBatis的删除操作在映射文件中是通过配置< delete>元素来实现的()。

3分


参考答案 :对
答案说明 :
13、
MyBatis入门程序中进行添加操作时不会有返回值()。

3分


参考答案 :错
答案说明 :返回影响记录数
14、
MyBatis的最近版本是mybatis-3.x系列的,本书所讲解的MyBatis框架就是基于此版本的,可以通过网址“https://github.com/mybatis/mybatis-3/releases”下载得到。

3分


参考答案 :对
答案说明 :
15、
MyBatis的全局配置文件,通常配置了MyBatis的运行环境等信息,其中主要内容是获取数据库连接()。

3分


参考答案 :对
答案说明 :
16、
使用MyBatis框架非常简单,只需在应用程序中引入MyBatis的核心包和lib目录中的依赖包即可进行项目运行()。

3分


参考答案 :错
答案说明 :还需要加入数据库相关的驱动JAR包
17、
在MyBatis的映射文件中,添加操作是通过< add>元素来实现的()。

3分


参考答案 :错
答案说明 :< insert>元素实现添加
18、
MyBatis的更新操作也需要进行事务提交()。

3分


参考答案 :对
答案说明 :
19、
使用MyBatis框架非常简单,只需在应用程序中引入MyBatis框架lib目录中的全部JAR包以及数据库驱动包即可进行项目运行()。

3分


参考答案 :错
答案说明 :
20、
MyBatis映射文件中配置了操作数据库的SQL语句,需要在MyBatis的全局配置文件mybatis-config.xml中加载才能执行。mybatis-config.xml可以加载多个配置文件,每个配置文件对应数据库中的一张表()。

3分


参考答案 :对
答案说明 :
21、MyBatis(前身是iBatis)是一个支持普通SQL查询、存储过程以及高级映射的持久层框架。3分


参考答案 :对
答案说明 :
22、
MyBatis映射文件中< mappers>元素是配置文件的根元素,它包含一个namespace属性,该属性为这个< mapper>指定了唯一的命名空间()。

3分


参考答案 :错
答案说明 :< mapper>元素是配置文件的根元素
23、
MyBatis是一个全表映射的框架,通常开发者只需定义好持久化对象到数据库表的映射关系,就可以通过MyBatis提供的方法完成持久层操作。

3分


参考答案 :错
答案说明 :
24、
MyBatis的更新操作在映射文件中是通过配置< update>元素来实现的()。

3分


参考答案 :对
答案说明 :
25、
MyBatis的删除操作也需要进行事务提交()。

3分


参考答案 :对
答案说明 :
26、
ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中()。

3分


参考答案 :对
答案说明 :
27、
创建数据库的语句如下:CREATE DATABASES mybatis;()。

3分


参考答案 :错
答案说明 :CREATE DATABASE mybatis;

第七章(MyBatis的核心配置)

单选题
1、关于MyBatis配置文件中< typeAliases>元素说法错误的是()2分
A、可以通过在MyBaits中配置< typeAliases>元素来定义别名
B、MyBaits配置文件中< typeAliases>元素的子元素< typeAlias>需要配置type和alias属性
C、可以通过在类名上使用@Alias(value = “user”)的形式定义别名
D、同时在MyBaits中配置了< typeAliases>元素以及@Alias(value = “user”)注解定义别名后,会以注解形式的别名为准
参考答案 :B
答案说明 :可以省略alias属性
2、以下关于< select>元素及其属性说法错误的是()2分
A、< select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发人员
B、parameterType属性表示传入SQL语句的参数类的全限定名或者别名
C、resultMap表示外部resultMap的命名引用,返回时可以同时使用resultType和resultMap
D、在同一个映射文件中可以配置多个< select>元素
参考答案 :C
答案说明 :返回时可以使用resultType或resultMap之一
3、以下有关< sql>元素说法错误的是()2分
A、< sql>元素的作用就是定义可重用的SQL代码片段,然后在其他语句中引用这一代码片段
B、使用< include>元素的refid属性可以引用自定义的代码片段
C、使用< include>元素refid的属性值为自定义代码片段的name
D、< sql>元素是< mapper>元素的子元素
参考答案 :C
答案说明 :使用< include>元素refid的属性值为自定义代码片段的id
4、有关MyBatis配置文件中< settings>元素的说法错误的是()2分
A、< settings>元素主要用于改变MyBatis运行时的行为,例如开启二级缓存、开启延迟加载等
B、虽然不配置< settings>元素,也可以正常运行MyBatis,但是熟悉< settings>的配置内容以及它们的作用还是十分必要的
C、< settings>元素中延迟加载的全局开关的参数lazyLoadingEnabled默认开启
D、< settings>元素的配置内容大多数都不需要开发人员去配置它,通常在需要时只配置少数几项即可
参考答案 :C
答案说明 :延迟加载的全局开关的lazyLoadingEnabled默认是false
5、关于< typeHandlers>元素说法错误的是()2分
A、< typeHandler>元素就是用来在配置文件中注册自定义的类型处理器的,它的使用方式有两种
B、通过< typeHandlers>元素的子元素< typeHandler>就可以配置单个类型处理器
C、通过< typeHandlers>元素的子元素< package>可以配置包下的所有类型处理器
D、< typeHandlers>元素的子元素< package>的handler属性用于指定类型处理器所在的包名,系统会在启动时自动的扫描com.itheima.type包下所有的文件,并把它们作为类型处理器
参考答案 : D
答案说明 :< package>的name属性用于指定类型处理器所在的包名
6、以下有关MyBatis映射文件中< insert>元素说法正确的是()2分
A、< insert>元素用于映射插入语句,在执行完元素中定义的SQL语句后,没有返回结果
B、< insert>元素的属性与< select>元素的属性相同
C、keyColumn属性用于设置第几列是主键,当主键列不是表中的第一列时需要设置
D、useGeneratedKeys(仅对insert有用)此属性会使MyBatis使用JDBC的getGeneratedKeys()方法来获取由数据库内部生产的主键
参考答案 :C
答案说明 :
多选题
7、关于MyBatis配置文件中< typeAliases>元素说法正确的是()4分
A、< typeAliases>元素用于为配置文件中的Java类型设置一个简短的名字,即设置别名
B、< typeAliases>元素的子元素< typeAlias>中的type属性用于指定需要被定义别名的类的全限定名;alias属性的属性值就是自定义的别名
C、如果省略< typeAliases>元素的alias属性,MyBatis会默认将类名作为别名
D、也可以通过在类名上使用@Alias(value = “user”)的形式定义别名
参考答案 :A,B,D
答案说明 :如果省略< typeAliases>元素的alias属性,MyBatis会默认将类名首字母小写后作为别名
8、MyBatis映射文件中主要元素包括()4分
A、< select>
B、< updte>
C、< sql>
D、< resultType>
参考答案 :A,B,C
答案说明 :
9、有关MyBatis配置文件中< properties>元素的说明正确的是()4分
A、< properties>是一个配置属性的元素,该元素通常用来将内部的配置外在化,即通过外部的配置来动态的替换内部定义的属性
B、通常可以使用< properties>元素的resource属性引入外部常量配置文件
C、除了可以使用< properties>元素的resource属性引入外部常量配置文件,还可以通过< properties>元素的子元素< property>来获取属性值
D、使用properties配置文件来配置属性值可以方便地在多个配置文件中使用这些属性值,并且方便日后的维护和修改
参考答案 :A,B,C,D
答案说明 :
10、
MyBaits映射文件中< select>元素的常用属性包括有()。

4分
A、flushCache
B、parameterType
C、resultType
D、useCache
参考答案 :A,B,C,D
答案说明 :
11、关于类型处理器typeHandler的说法正确的是()4分
A、typeHandler的作用就是将预处理语句中传入的参数从javaType(Java类型)转换为jdbcType(JDBC类型),或者从数据库取出结果时将jdbcType转换为javaType
B、为了方便转换,MyBatis框架提供了一些默认的类型处理器
C、还可以通过自定义的方式对类型处理器进行扩展(自定义类型处理器可以通过实现TypeHandler接口或者继承BaseTypeHandle类来定义)
D、< typeHandler>元素就是用来在配置文件中注册自定义的类型处理器的,它的使用方式有两种
参考答案 :A,B,C,D
答案说明 :
12、
为了方便转换,MyBatis框架提供了一些默认的类型处理器,包括有()。

4分
A、BooleanTypeHandler
B、IntegerTypeHandler
C、FloatTypeHandler
D、DateTypeHandler
参考答案 :A,B,C,D
答案说明 :
13、以下有关SqlSession的说明正确的是()4分
A、SqlSession是MyBatis框架中另一个重要的对象,其主要作用是执行持久化操作
B、每一个线程都应该有一个自己的SqlSession实例,并且该实例是不能被共享的
C、SqlSession实例也是线程不安全的,因此其使用范围最好在一次请求或一个方法中
D、使用完SqlSession对象之后,要及时的关闭它,通常可以将其放在finally块中关闭
参考答案 :A,B,C,D
答案说明 :
14、有关MyBatis中对象工厂ObjectFactory的说法错误的是()4分
A、MyBatis框架每次创建结果对象的新实例时,都会使用一个对象工厂(ObjectFactory)的实例来完成
B、MyBatis中默认的ObjectFactory的作用就是实例化目标类,它只可以通过默认构造方法实例化
C、想要实例化目标类,就要通过自定义ObjectFactory,然后进行配置来实现
D、在配置文件中使用< objectFactory>元素可以配置自定义的ObjectFactory
参考答案 :B,C
答案说明 :
15、关于< environments>元素及其子元素的说法正确的是()4分
A、在配置文件中,< environments>元素用于对环境进行配置
B、在< environments>元素中可以配置1个< environment>子元素,包含事务管理和数据源的配置信息
C、< environment>的子元素< dataSource>用于配置数据源,它的type属性用于指定使用哪种数据源
D、可以通过< environments>元素配置多种数据源,对于数据源的配置,MyBatis框架提供了UNPOOLED、POOLED和JNDI三种数据源类型
参考答案 :A,C,D
答案说明 :
16、有关< resultMap>元素相关说法正确的是()4分
A、< resultMap>元素的主要作用是定义映射规则、级联的更新以及定义类型转化器等
B、当数据表中的列和对象的属性不一致时,此时就可以使用< resultMap>元素进行处理
C、< resultMap>元素中的< association>和< collection>用于处理多表时的关联关系
D、以上都正确
参考答案 :A,B,C,D
答案说明 :
17、以下有关SqlSessionFactory的说法正确的是()4分
A、SqlSessionFactory是MyBatis框架中十分重要的对象,其主要作用是创建SqlSession
B、SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象来构建
C、SqlSessionFactory对象是线程安全的,它一旦被创建,在整个应用执行期间都会存在
D、通常每一个数据库都会只对应一个SqlSessionFactory,所以在构建SqlSessionFactory实例时,建议使用单列模式
参考答案 :A,B,C,D
答案说明 :
18、MyBaits配置文件中的主要元素包括以下()4分
A、< properties>元素
B、< settings>元素
C、< environments>元素
D、< mappers>元素
参考答案 :A,B,C,D
答案说明 :
19、
MyBatis映射文件中< insert>的< selectKey>子元素可以设置以下几种属性()。

4分
A、keyProperty
B、resultType
C、statementType
D、order
参考答案 :A,B,C,D
答案说明 :
20、
在配置文件中,< mappers>元素用于指定MyBatis映射文件的位置,一般可以使用以下哪些方法引入映射器文件()。

4分
A、使用本地类路径引入
B、使用本地文件路径引入
C、使用接口类引入
D、使用包名引入
参考答案 :A,B,C,D
答案说明 :
21、
< resultMap>是MyBatis映射文件中最重要也是最强大的元素,包含了一些子元素主要有()。

4分
A、< id/>
B、< result/>
C、< association property="" />
D、< collection property="" />
参考答案 :A,B,C,D
答案说明 :
判断题
22、如果项目中使用的SSM整合开发,就需要在MyBatis中配置事务管理器,而在Spring中进行数据源配置()1分


参考答案 :错
答案说明 :
23、
< settings>元素中的配置参数cacheEnabled用于影响所有映射器中配置的缓存全局开关,默认值为false()。

1分


参考答案 :错
答案说明 :默认值为true
24、在MyBatis配置文件中 < settings>元素的作用十分重要,所以必须要掌握并进行配置,否则会影响MyBatis的正常运行()1分


参考答案 :错
答案说明 :不配置也不会影响其运行
25、在配置文件中,< environments>元素用于对环境进行配置。MyBatis的环境配置实际上就是数据源的配置,我们可以通过< environments>元素配置多种数据源,即配置多种数据库()1分


参考答案 :对
答案说明 :
26、SqlSession是MyBatis框架中另一个重要的对象,它是应用程序与持久层之间执行交互操作的一个单线程对象,其主要作用是执行持久化操作()1分


参考答案 :对
答案说明 :
27、映射文件中可以包含多个id值相同的< resultMap>元素()1分


参考答案 :错
答案说明 :id属性resultMap的唯一标识,必须唯一
28、MyBatis映射文件中< insert>中配置了子元素< selectKey>后,< selectKey>会首先运行,它会通过自定义的语句来设置数据表中的主键()1分


参考答案 :对
答案说明 :
29、MyBatis中默认的ObjectFactory的作用就是实例化目标类,它既可以通过默认构造方法实例化,也可以在参数映射存在的时候通过参数构造方法来实例化()1分


参考答案 :对
答案说明 :
30、除了可以像上述通过外部配置文件来定义属性值外,还可以通过配置< properties>元素的子元素< property>,以及通过方法参数传递的方式来获取属性值()1分


参考答案 :对
答案说明 :
31、< typeHandler>元素就是用来在配置文件中注册自定义的类型处理器的()1分


参考答案 :对
答案说明 :
32、
MyBatis框架提供了许多默认别名,由于别名不区分大小写,所以在使用时要注意重复定义的覆盖问题()。

1分


参考答案 :对
答案说明 :
33、< update>和< delete>元素的使用比较简单,它们的属性配置也都相同()1分


参考答案 :错
答案说明 :属性配置不完全相同
34、在映射文件中,< mappers>元素是映射文件的根元素,其他元素都是它的子元素()1分


参考答案 :错
答案说明 :< mapper>元素是映射文件的根元素
35、
< resultMap>的子元素< association>和< collection>用于处理多表时的关联关系()。

1分


参考答案 :对
答案说明 :
36、SqlSession实例也是线程安全的,可以将其放在一个类的静态字段、实例字段或任何类型的管理范围(如Servlet的HttpSession)中使用()1分


参考答案 :错
答案说明 :Session是线程不安全的
37、< resultMap>元素表示结果映射集,是MyBatis中最重要也是最强大的元素。它的主要作用是定义映射规则、级联的更新以及定义类型转化器等()1分


参考答案 :对
答案说明 :
38、在MyBatis框架的核心配置文件中,< configuration>元素是配置文件的根元素,其他元素都要在< configuration>元素内配置()1分


参考答案 :对
答案说明 :
39、< settings>元素主要用于改变MyBatis运行时的行为,例如开启二级缓存、开启延迟加载等()1分


参考答案 :对
答案说明 :
40、
每一个线程都应该有一个自己的SqlSession实例,并且该实例是不能被共享的()。

1分


参考答案 :对
答案说明 :
41、
MyBatis映射文件中< select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发人员()。

1分


参考答案 :对
答案说明 :
42、SqlSessionFactory是MyBatis框架中十分重要的对象,它是单个数据库映射关系经过编译后的内存镜像,其主要作用是创建SqlSession()1分


参考答案 :对
答案说明 :
43、< typeAliases>元素用于为配置文件中的Java类型设置别名,其使用的意义在于减少全限定类名的冗余()1分


参考答案 :对
答案说明 :
44、MyBaits映射文件中< sql>元素的作用就是定义可重用的SQL代码片段,然后在其他语句中引用这一代码片段()1分


参考答案 :对
答案说明 :
45、
MyBatis映射文件的< insert>元素的属性与< select>元素的属性大部分相同,但还包含了3个特有属性()。

1分


参考答案 :对
答案说明 :
46、与< insert>元素一样,< update>和< delete>元素在执行完之后,也会返回一个表示影响记录条数的整数()1分


参考答案 :对
答案说明 :
47、MyBatis映射文件中< mapper>的子元素必须按照指定的顺序进行配置,否则MyBatis在解析XML映射文件的时候会报错()1分


参考答案 :错
答案说明 :
48、
< configuration>的子元素必须按照指定的顺序进行配置,否则MyBatis在解析XML配置文件的时候会报错()。

1分


参考答案 :对
答案说明 :
49、SqlSessionFactory对象是线程安全的,它一旦被创建,在整个应用执行期间都会存在()。1分


参考答案 :对
答案说明 :

第八章(动态SQL)

单选题
1、以下关于MyBatis的< set>元素的使用及说法正确的是()5分
A、< set>元素主要用于更新操作,其主要作用是在动态包含的SQL语句前输出一个SET关键字,并将SQL语句中最后一个多余的逗号去除
B、使用MyBatis的< set>元素来更新操作时,前端需要传入所有参数字段,否则未传入字段会默认设置为空
C、在映射文件中使用< set>和< if>元素组合进行update语句动态SQL组装时, < set>元素内包含的内容可以都为空,< if>元素会进行判断处理
D、在映射文件进行更新操作时,只需要使用< set>元素就可以进行动态SQL组装
参考答案 :A
答案说明 :
2、以下不属于< foreach>元素中使用的属性的是()。5分
A、separator
B、collection
C、current
D、item
参考答案 :C
答案说明 :
3、以下关于< foreach>元素中使用的几种属性的描述错误的是()5分
A、item:配置的是循环中当前的元素
B、index:配置的是当前元素在集合的位置下标
C、collection:配置的是传递过来的参数类型,它可以是一个array、list(或collection)、Map集合的键、POJO包装类中数组或集合类型的属性名等
D、separator:配置的是各个元素的间隔符
参考答案 :C
答案说明 :collection:配置的是传递过来的参数类型,首字母要小写
4、当有多个选择的情况是,值需要从多个选项中选择一个去执行时,可以使用的动态SQL元素是()5分
A、< if>
B、< choose>、< when>、< otherwise>
C、< when>
D、< set>
参考答案 :B
答案说明 :
5、SQL语句中,where后直接跟and,这在运行时肯定会报()错误。5分
A、SQL语法
B、无效字符
C、参数异常
D、MySQL版本
参考答案 :A
答案说明 :
6、以下有关MyBatis动态SQL中的主要元素说法错误的是()5分
A、< if>用于单条件分支判断
B、< choose>(< when>、< otherwise>)用于多条件分支判断
C、< foreach>循环语句,常用于in语句等列举条件中
D、< bind>从OGNL表达式中创建一个变量,并将其绑定到上下文,只于模糊查询的sql中
参考答案 : D
答案说明 :
多选题
7、关于< if>元素的使用及说法正确的是()10分
A、在MyBatis中,< if>元素是最常用的判断语句,它类似于Java中的if语句,主要用于实现某些简单的多条件分支判断
B、使用< if>元素的test属性可以对传入参数进行条件判断,如果传入的条件成立就进行动态SQL组装
C、< if>元素可以出现多个
D、以上说法都正确
参考答案 :B,C
答案说明 :
8、以下关于在进行模糊查询编写SQL语句的时候可能出现问题描述正确的是()。10分
A、如果使用“${}”进行字符串拼接,则无法防止SQL注入问题
B、如果使用concat函数进行拼接,则只针对MySQL数据库有效
C、如果使用的是Oracle数据库,则要使用连接符号“||”
D、如果使用的是MyBatis框架,则要使用< bind>元素来解决
参考答案 :A,B,C
答案说明 :
9、以下有关< choose>及其子元素说法错误的是()10分
A、MyBatis动态SQL中的< choose>、< when>、< otherwise>元素类似Java中的switch…case…default语句,用于进行多条件分支判断
B、只要< when>元素中的test属性条件判断成立,就会动态组装SQL
C、MyBatis动态SQL中的< choose>元素内,可以有多个< when>和< otherwise>子元素
D、以上说法都正确
参考答案 :A,B,C,D
答案说明 :
10、
MyBatis动态SQL中的主要元素包含有()。

10分
A、< if>
B、< trim>
C、< set>
D、< bind>
参考答案 :A,B,C,D
答案说明 :
11、以下关于MyBatis动态SQL中< trim>元素< where>元素说法错误的是()10分
A、使用< where>元素替换条件“where 1=1”后,既保证了where后面的条件成立,又避免了where后面第一个词是and或者or之类的关键词
B、使用< where>元素对“where 1=1”条件进行了替换,只用当< where>元素的test属性成立才会在拼接SQL中加入where关键字,否则将不会添加
C、< trim>元素和< where>元素功能相同,都是对对“where 1=1”条件进行替换,并去除多余字符
D、以上说法都正确
参考答案 :B,C,D
答案说明 :
判断题
12、MyBatis动态SQL中的< choose>、< when>、< otherwise>元素类似Java中的switch…case…default语句,用于进行多条件分支判断()2分


参考答案 :对
答案说明 :
13、动态SQL是MyBatis的强大特性之一,MyBatis3采用了功能强大的基于OGNL的表达式来完成动态SQL,它消除了之前版本中需要了解的大多数元素,使用不到原来一半的元素就能完成所需工作。()2分


参考答案 :对
答案说明 :
14、
MyBaits中对原始SQL中的“where 1=1”的条件可以使用< where>与< if>元素组合进行替换()。

2分


参考答案 :对
答案说明 :
15、使用MyBatis的< set>元素来更新操作时,前端需要传入所有参数字段,否则未传入字段会默认设置为空()2分


参考答案 :错
答案说明 :不需要传入所有字段
16、在使用< if>元素时,只要test属性中的表达式为true,就会执行元素中的条件语句。2分


参考答案 :对
答案说明 :
17、MyBatis中的< set>元素主要用于更新操作,其主要作用是在动态包含的SQL语句前输出一个SET关键字,并将SQL语句中最后一个多余的逗号去除()2分


参考答案 :对
答案说明 :
18、
在MyBaits映射文件中使用< set>和< if>元素组合进行update语句动态SQL组装时,如果< set>元素内包含的内容都为空,则会出现SQL语法错误()。

2分


参考答案 :对
答案说明 :
19、
MyBaits中< trim>元素的作用是去除一些特殊的字符串,它的prefix属性代表的是语句的前缀,而prefixOverrides属性代表的是需要去除的哪些特殊字符串()。

2分


参考答案 :对
答案说明 :
20、
可以将任何可迭代对象(如列表、集合等)和任何的字典或者数组对象传递给< foreach>作为集合参数()。

2分


参考答案 :对
答案说明 :
21、
MyBaits中的< choose>、< when>、< otherwise>元素用于多条件分支判断,当< when>元素中的条件为真,就进行动态组装< when>元素内的SQL片段,以此类推()。

2分


参考答案 :错
答案说明 :当第一个< when>元素中的条件为真,就不会判断和组装后面的元素内SQL了

第九章(MyBatis的关联映射)

单选题
1、下面关于Java对象之间的关联关系描述正确的是()3分
A、一对一的关系就是在本类和对方类中定义同一个类型的对象
B、一对多的关系:就是一个A类类型对应多个B类类型的情况
C、多对多的关系只需要在一方的类中引入另一方类型的集合
D、多对多关联关系需要在本类中引入本类的集合
参考答案 :B
答案说明 :
2、下面属性中不属于< association>元素属性的是()3分
A、property
B、column
C、ofType
D、javaType
参考答案 :C
答案说明 :ofType是< collection>元素的属性
3、在Java中,以下有关类的关联关系描述错误的是()。3分
A、在Java中,通过对象也可以进行关系描述,他们分别为一对一、一对多、多对一和多对多。
B、一对一的关系就是在本类中定义对方类型的对象
C、一对多的关系就是一个A类类型对应多个B类类型的情况,需要在A类中以集合的方式引入B类类型的对象,在B类中定义A类类型的属性a
D、多对多的关系:在A类中定义B类类型的集合,在B类中定义A类类型的集合。
参考答案 :A
答案说明 :
4、以下关于< association>元素中常用属性说法错误的是()。3分
A、property指定映射到的实体类对象属性,与表字段一一对应
B、column指定表中对应的字段
C、javaType指定映射到实体对象属性的类型
D、fetchType指定在关联查询时是否启用延迟加载,默认值为eager
参考答案
答案说明 :fetchType属性有lazy和eager两个属性值,默认值为lazy(即默认关联映射延迟加载)。
5、下面关于数据库中多表之间关联关系说法错误的是()3分
A、一对一关联关系可以在任意一方引入对方主键作为外键
B、一对多关联关系在“一”的一方,添加“多”的一方的主键作为外键
C、多对多关联关系会产生中间关系表,引入两张表的主键作为外键
D、多对多关联关系的两个表的主键成可以为联合主键或使用新的字段作为主键
参考答案 :B
答案说明 :在“多”的一方,添加“一”的一方的主键作为外键
6、下面关于< collection>元素的描述正确的是()3分
A、MyBatis就是通过< collection>元素来处理一对多关联关系的
B、< collection>元素的属性与< association>元素完全相同
C、ofType属性与javaType属性对应,它用于指定实体对象中所有属性所包含的元素类型
D、< collection >元素只能使用嵌套查询方式
参考答案 :A
答案说明 :
多选题
7、以下MyBatis一对多关联映射的使用及说法正确的是()8分
A、MyBatis是通过< resultMap>元素的< collection>子元素该元素来处理一对多关联关系的
B、< collection>子元素的属性大部分与< association>元素相同,但其还包含一个特殊属性——ofType
C、MyBatis一对多关联映射同样可以使用嵌套结果和嵌套查询的方式
D、ofType属性与javaType属性意义相同
参考答案 :A,B,C
答案说明 :
8、
MyBatis映射文件中< association>元素通常可以配置以下属性()。

8分
A、property
B、fetchType
C、ofType
D、select
参考答案 :A,B,D
答案说明 :
9、以下有关MyBatis中多对对关联映射的使用及说法正确的是()8分
A、MyBatis是通过< resultMap>元素的< association>子元素该元素来处理多对一关联关系的
B、多对多关联映射中的< association>子元素与一对多中的< association>子元素用法和属性相同
C、MyBatis是通过< resultMap>元素的< collection>子元素该元素来处理多对一关联关系的
D、多对多关联映射中也有嵌套查询和嵌套结果两种方式
参考答案 :C,D
答案说明 :
10、MyBatis映射文件中< collection>元素通常可以配置以下属性()。8分
A、property
B、column
C、ofType
D、select
参考答案 :A,B,C,D
答案说明 :
11、在关系型数据库中,多表之间的关联关系主要包括()8分
A、一对一
B、一对多
C、多对一
D、多对多
参考答案 :A,B,C,D
答案说明 :
判断题
12、
MyBatis是通过< resultMap>元素的< collection>子元素该元素来处理一对一关联关系的()。

3分


参考答案 :错
答案说明 :
13、MyBatis中多对多关联映射同样有嵌套查询和嵌套结果两种关联方式。3分


参考答案 :对
答案说明 :
14、在Java对象中,多对多的关系是在A类中定义B类类型的集合,在B类中定义A类类型的集合()3分


参考答案 :对
答案说明 :
15、在Java中,一对多的关系就是在A类中以集合的方式引入B类类型的对象,在B类中定义A类类型的属性a。3分


参考答案 :对
答案说明 :
16、以订单和商品为例,一个订单可以包含多种商品,所以订单和商品之间属于一对多关系。3分


参考答案 :错
答案说明 :
17、MyBatis默认没有开启延迟加载,需要在核心配置文件中的< settings>元素内进行配置。3分


参考答案 :对
答案说明 :
18、
在关系型数据库中,一对多就是在“一”的一方,添加“多”的一方的主键作为外键()。

3分


参考答案 :错
答案说明 :
19、当表中的列名与对应对象的属性名称完全一致时,在查询映射文件中可以不使用resultMap属性。3分


参考答案 :对
答案说明 :
20、
MyBatis是同样是通过< resultMap>元素的< collection>子元素该元素来处理多对多关联关系的()。

3分


参考答案 :对
答案说明 :
21、MyBatis是通过< resultMap>元素的< collection>子元素该元素来处理一对多关联关系的()3分


参考答案 :对
答案说明 :
22、在关系型数据库中,多表之间存在着三种关联关系,分别为一对一、多对一和多对多()3分


参考答案 :错
答案说明 :
23、MyBatis中< collection>元素的属性与< association>元素相同,且使用也很简单,同样有嵌套查询和嵌套结果两种关联方式()3分


参考答案 :错
答案说明 :
24、MyBatis关联映射的< association>元素和< collection>元素中都已默认配置了延迟加载属性。3分


参考答案 :对
答案说明 :
25、MyBatis映射文件中< association>元素的属性select用于指定引入嵌套查询的子SQL语句,该属性用于关联映射中的嵌套查询()3分


参考答案 :对
答案说明 :

第十章(Spring与MyBatis整合)

单选题
1、进行MyBatis与Spring的整合配置文件编写时,不包括有()。7分
A、db.properties
B、applicationContext.xml
C、mybatis-config.xml
D、springmvc-config.xml
参考答案 : D
答案说明 :
2、
MapperFactoryBean是MyBatis-Spring团队提供的用于根据Mapper接口生成Mapper对象的类,该类在Spring配置文件中可以配置的参数不包括()。

7分
A、mapperInterface
B、SqlSessionFactory
C、SqlSessionTemplate
D、basePackage
参考答案 : D
答案说明 :
3、以下有关采用传统DAO开发方式进行MyBatis与Spring框架的整合的说法错误的是()7分
A、采用传统DAO开发方式进行MyBatis与Spring框架的整合时,只需要编写DAO接口
B、采用传统DAO开发方式进行MyBatis与Spring框架的整合时,需要向DAO实现类中注入SqlSessionFactory,然后在方法体内通过SqlSessionFactory创建SqlSession
C、可以使用mybatis-spring包中所提供的SqlSessionTemplate类或SqlSessionDaoSupport类来实现在类中注入SqlSessionFactory
D、SqlSessionDaoSupport是一个抽象支持类,它继承了DaoSupport类,主要是作为DAO的基类来使用。可以通过SqlSessionDaoSupport类的getSqlSession()方法来获取所需的SqlSession
参考答案 :A
答案说明 :
多选题
4、进行MyBatis与Spring整合时,Spring的配置文件主要配置内容包括有()。8分
A、MyBatis工厂配置
B、数据源配置
C、事务管理器配置
D、读取MyBatis核心配置文件的配置
参考答案 :A,B,C,D
答案说明 :
5、
MapperFactoryBean是MyBatis-Spring团队提供的一个用于根据Mapper接口生成Mapper对象的类,该类在Spring配置文件中可配置的参数说明错误的是()。

8分
A、mapperInterface:用于指定接口
B、SqlSessionFactory:用于指定SqlSessionFactory
C、SqlSessionTemplate:用于指定SqlSessionTemplate。如果与SqlSessionFactory同时设定,则只会启用SqlSessionTemplate。
D、以上都正确
参考答案 :A,B,C,D
答案说明 :
6、
要实现MyBatis与Spring的整合,所需要的JAR包包括有以下()。

8分
A、Spring框架的相关JAR包
B、MyBatis框架相关JAR包
C、Spring与MyBatis整合JAR包
D、数据库驱动包
参考答案 :A,B,C,D
答案说明 :
7、
以下有关采用传统DAO开发方式进行MyBatis与Spring框架的整合的说法正确的是()。

8分
A、采用传统DAO开发方式进行MyBatis与Spring框架的整合时,需要编写DAO接口以及接口的实现类
B、采用传统DAO开发方式进行MyBatis与Spring框架的整合时,需要向DAO实现类中注入SqlSessionFactory,然后在方法体内通过SqlSessionFactory创建SqlSession
C、可以使用mybatis-spring包中所提供的SqlSessionTemplate类或SqlSessionDaoSupport类来实现在类中注入SqlSessionFactory
D、SqlSessionDaoSupport是一个抽象支持类,它继承了DaoSupport类,主要是作为DAO的基类来使用。可以通过SqlSessionDaoSupport类的getSqlSession()方法来获取所需的SqlSession
参考答案 :A,B,C,D
答案说明 :
8、
单独进行MyBatis与Spring整合时,主要需要编写的配置文件有()。

8分
A、Spring配置文件applicationContext.xml
B、MyBaits配置文件mybatis-config.xml
C、日志文件log4j.properties
D、前端Web加载配置文件web.xml
参考答案 :A,B,C
答案说明 :
判断题
9、MapperFactoryBean是MyBatis-Spring团队提供的一个用于根据Mapper接口生成Mapper对象的类()3分


参考答案 :对
答案说明 :
10、SqlSessionTemplate是mybatis-spring的核心类,它负责管理MyBatis的SqlSession,调用MyBatis的SQL方法。当调用SQL方法时,SqlSessionTemplate将会保证使用的SqlSession和当前Spring的事务是相关的。()3分


参考答案 :对
答案说明 :
11、使用Mapper接口动态代理开发方式时,如果完全遵循了编写规范,那么在MyBatis的核心配置文件中可以不引入映射文件()3分


参考答案 :对
答案说明 :
12、
在实际的项目开发中,Spring与MyBatis都是整合在一起使用的()。

3分


参考答案 :对
答案说明 :
13、
MyBaits与Spring进行整合时,Dao层开发可以使用传统的DAO方式的开发整合,以及Mapper接口方式的开发整合()。

3分


参考答案 :对
答案说明 :
14、
可以使用mybatis-spring包中所提供的SqlSessionTemplate类或SqlSessionDaoSupport类来实现向DAO实现类中注入SqlSessionFactory()。

3分


参考答案 :对
答案说明 :
15、要实现MyBatis与Spring的整合,只需要将这两个框架的JAR包进行整合即可。()3分


参考答案 :错
答案说明 :
16、在实现MyBatis与Spring的整合时,需要编写的配置文件一般有db.properties文件、Spring的配置文件,以及MyBatis的配置文件。()3分


参考答案 :对
答案说明 :
17、在实现MyBatis与Spring的整合时,涉及到数据库访问,还要根据具体的数据库类型选择对应的数据库驱动JAR包。()3分


参考答案 :对
答案说明 :
18、SqlSessionDaoSupport是一个抽象支持类,它继承了DaoSupport类,主要是作为DAO的基类来使用。3分


参考答案 :对
答案说明 :
19、采用传统DAO开发方式进行MyBatis与Spring框架的整合时,需要编写DAO接口以及接口的实现类,并且需要向DAO实现类中注入SqlSessionFactory,然后在方法体内通过SqlSessionFactory创建SqlSession。()3分


参考答案 :对
答案说明 :
20、db.properties配置文件主要用于配置数据源的常量信息配置。()3分


参考答案 :对
答案说明 :
21、
MapperFactoryBean的参数SqlSessionTemplate用于指定SqlSessionTemplate。如果与SqlSessionFactory同时设定,则只会启用SqlSessionFactory()。

3分


参考答案 :错
答案说明 :

第十一章(Spring MVC入门)

单选题
1、入门程序中,不是必须引入的JAR包是()8分
A、Spring的4个核心JAR包
B、commons-logging的JAR包
C、spring-web和spring-webmvc的JAR包
D、log4j的JAR
参考答案 : D
答案说明 :
2、下面关于Spring MVC特点说法错误的是()。8分
A、灵活性强,但不易于与其他框架集成
B、可自动绑定用户输入,并能正确的转换数据类型
C、支持国际化
D、使用基于XML的配置文件,在编辑后,不需要重新编译应用程序
参考答案 :A
答案说明 :
3、用户通过浏览器向服务器发送请求时,负责拦截用户请求的是( )。8分
A、处理器
B、处理器映射器
C、处理器适配器
D、前端控制器
参考答案 : D
答案说明 :
4、Spring MVC中的后端控制器是指()。8分
A、HandlerAdapter
B、DispatcherServlet
C、ViewReslover
D、Handler
参考答案 : D
答案说明 :
5、Spring MVC是Spring提供的一个实现了()设计模式的轻量级Web框架。8分
A、Web MVC
B、Web
C、单例
D、工厂
参考答案 :A
答案说明 :
多选题
6、在Spring MVC的配置文件中,属于可选配置的是()15分
A、处理器映射器
B、处理器适配器
C、视图解析器
D、处理器
参考答案 :A,B,C
答案说明 :
7、下面关于Spring MVC特点说法正确的是()。15分
A、灵活性强,易于与其他框架集成
B、提供了一个前端控制器DispatcherServlet,使开发人员无需额外开发控制器对象
C、支持国际化
D、支持多种视图技术
参考答案 :A,B,C,D
答案说明 :
判断题
8、Spring MVC支持JSP、Velocity、XML和FreeMarker等视图技术。5分


参考答案 :错
答案说明 :XML不是视图技术
9、< load-on-startup>元素中的1表示容器在启动时立即加载这个Servlet。5分


参考答案 :对
答案说明 :
10、Spring MVC的灵活性比较弱,易于与其他框架集成。5分


参考答案 :错
答案说明 :Spring MVC灵活性强,易于与其他框架集成
11、HandlerAdapter将ModelAndView对象返回给ViewReslover。5分


参考答案 :错
答案说明 :返回给DispatcherServlet
12、在< servlet-mapping>中,通过< url-pattern>元素的“/”,会将所有URL拦截,并交由DispatcherServlet处理。5分


参考答案 :对
答案说明 :
13、Spring4.3版本的配置文件中,必须要配置处理器映射器、处理器适配器和视图解析器,否则程序将无法运行。5分


参考答案 :错
答案说明 :在Spring4.0以后,如果不配置处理器映射器、处理器适配器和视图解析器,也会使用Spring内部默认的配置来完成相应的工作

第十二章(Spring MVC的核心类和注解)

单选题
1、RequestMapping注解类型的作用是()。3分
A、用于映射一个请求或一个方法
B、用于映射一个控制器类
C、用于映射请求参数
D、用于映射请求类型
参考答案 :A
答案说明 :
2、下面关于请求处理方法返回类型说法错误的是()。3分
A、常见的返回类型是ModelAndView、String和void
B、ModelAndView类型中可以添加Model数据,并指定视图
C、String类型的返回值可以跳转视图,但不能携带数据
D、void类型主要在异步请求时使用,它既返回数据,又跳转视图
参考答案 : D
答案说明 :
3、下面关于@RequestMapping注解说法错误的是()。3分
A、@RequestMapping注解的默认属性是value
B、@RequestMapping注解的value属性值可以省略
C、@RequestMapping注解的value属性名可以省略
D、@RequestMapping注解的value属性必须标注
参考答案 : D
答案说明 :
4、
下面选项中,能够正确访问下面代码中方法是()

@Controller

@RequestMapping("/first")

public class FirstController{
@RequestMapping("/first")
public String handleRequest(HttpServletRequest request,
HttpServletResponse response, Model model) throws Exception{
model.addAttribute(“msg”, “这是我的第一个Spring MVC程序”);
return “first”;
}

}

3分
A、http://localhost:8080/chapter12/hello/firstController
B、http://localhost:8080/chapter12/first/firstController
C、http://localhost:8080/chapter12/first/first
D、http://localhost:8080/chapter12/hello/first
参考答案 :C
答案说明 :
5、下面关于< load-on-startup>元素说法错误的是()。3分
A、如果< load-on-startup>元素的值为1,则在应用程序启动时会立即加载该Servlet
B、如果< load-on-startup>元素不存在,则应用程序会在第一个Servlet请求时加载该Servlet
C、如果< load-on-startup>元素的值为1,则在应用程序启动时会延迟加载该Servlet
D、< load-on-startup>元素是可选的
参考答案 :C
答案说明 :
6、下面关于组合注解的说法正确的是()。3分
A、组合注解是Spring3.x版本中的新特性
B、组合注解可以简化常用的HTTP方法的映射
C、在所有的Spring项目中,使用组合注解可以替代@RequestMapping注解
D、@GetMapping注解可以用来匹配GET和POST方式的请求
参考答案 :B
答案说明 :
7、以下有关Spring MVC支持的返回值类型及说法错误的是()。3分
A、ModelAndView返回值类型中可以添加Model数据,并指定视图
B、String返回值类型也可以携带数据并跳转视图;
C、void返回类型主要在异步请求时使用,它只返回数据,而不会跳转视图
D、String类型除了可以返回视图页面外,还可以进行重定向与请求转发。
参考答案 :B
答案说明 :
8、下面类型中,不属于请求处理方法参数类型的是()。3分
A、javax.servlet.http.HttpSession
B、@MatrixVariable
C、org.springframework.ui.Model
D、void
参考答案 : D
答案说明 :
多选题
9、在使用Spring MVC框架时,web.xml配置文件中可以配置有()。7分
A、前端过滤器DispatcherServlet
B、初始化时加载配置文件contextConfigLocation
C、程序启动时加载该Servlet
D、请求路径映射< servlet-mapping>
参考答案 :A,B,C,D
答案说明 :
10、以下哪些属于Spring MVC所支持的方法返回类型有()。7分
A、ModelAndView
B、ResponseEntity
C、String
D、void
参考答案 :A,B,C,D
答案说明 :
11、注解@RequestMapping可以可以标注在()。7分
A、一个类上
B、一个方法上
C、一个属性上
D、以上都可以
参考答案 :A,B
答案说明 :
12、以下哪些属于@RequestMapping注解的属性()。7分
A、name
B、value
C、method
D、params
参考答案 :A,B,C,D
答案说明 :
判断题
13、注解@Controller可以添加在控制器类或方法上。3分


参考答案 :错
答案说明 :
14、在控制器类中,每一个请求处理方法都可以有一个多种类型的参数,以及多个不同类型的返回结果。3分


参考答案 :错
答案说明 :
15、在使用@Controller时,还需要类实现Controller接口。3分


参考答案 :错
答案说明 :
16、在web.xml中< load-on-startup>元素和< init-param>元素都是可选的。3分


参考答案 :对
答案说明 :
17、返回String类型数据时,可以实现请求转发和重定向。3分


参考答案 :对
答案说明 :
18、controller注解类型的注解形式为@Controller,它可以标注在任何类上。3分


参考答案 :错
答案说明 :需要标注在控制器类上
19、@RequestMapping的method属性必须使用。3分


参考答案 :错
答案说明 :method属性可以省略
20、@RequestMapping(method = RequestMethod.GET)可以缩写为@GetMapping。3分


参考答案 :对
答案说明 :
21、如果没有通过< init-param>元素配置,则应用程序会默认去WEB-INF目录下寻找servletName-servlet.xml。3分


参考答案 :错
答案说明 :
22、@RequestMapping注解只能标注在一个方法上3分


参考答案 :错
答案说明 :可以标注在类和方法上
23、在控制器类中,每一个请求处理方法都可以有多个不同类型的参数,以及一个多种类型的返回结果。3分


参考答案 :对
答案说明 :
24、在控制器类中,每一个请求处理方法只能有一个类型的参数3分


参考答案 :错
答案说明 :
25、Spring MVC支持的String类型的返回值可以携带数据并跳转视图。3分


参考答案 :错
答案说明 :
26、当注解@RequestMapping的value是其唯一属性时,可以省略属性名。3分


参考答案 :对
答案说明 :
27、当@RequestMapping标注在类上时,该控制器所处理的所有请求都被映射到value属性值所指定的路径下。3分


参考答案 :对
答案说明 :
28、@RequestMapping注解的属性都是可选属性。3分


参考答案 :对
答案说明 :

第十三章(数据绑定)

单选题
1、下面关于Spring MVC数据绑定流程说法错误的是()。5分
A、Spring MVC将ServletRequest对象传递给DataBinder
B、Spring会将处理方法的入参对象传递给DataBinder
C、DataBinder调用BindingResult组件进行数据类型转换、数据格式化等工作
D、调用Validator组件对已经绑定了请求消息数据的参数对象进行数据合法性校验
参考答案 :C
答案说明 :DataBinder调用ConversionService组件
2、@RequestParam注解中可以省略属性名称的是()5分
A、defaultValue
B、value
C、name
D、required
参考答案 :B
答案说明 :
3、以下有关Spring MVC常用的默认参数类型及说法错误的是()。5分
A、HttpServletRequest通过request对象获取请求信息
B、HttpServletResponse通过response处理响应信息
C、HttpSession通过session对象得到session中存放的对象
D、Model/ModelMap:Model或ModelMap是一个接口,作用是将model数据填充到request域。
参考答案 : D
答案说明 :Model是一个接口,ModelMap是一个接口实现
4、下面选项中,哪一个是Spring的编码过滤器类()5分
A、org.springframework.web.filter.EncodingFilter
B、org.springframework.web.filter.CharacterEncodingFilter
C、org.springframework.web.filter.CharacterEncoding
D、org.springframework.web.filter.CharacterFilter
参考答案 :B
答案说明 :
5、下面不属于Spring MVC中常用的默认参数类型的是()。5分
A、HttpServletRequest
B、HttpServletResponse
C、HttpSession
D、ModelView
参考答案 : D
答案说明 :
6、
以下有关Spring MVC数据绑定中集合数据绑定的说法正确的是()。

5分
A、批量删除用户操作时,前端请求传递过来的参数就会包含多个相同类型的数据,此时可以采用数组类型数据绑定的形式
B、使用集合数据绑定需要后台方法中定义一个集合类型参数介绍绑定前端请求参数
C、绑定数组与绑定集合页面传递的参数相同,只是后台接收方法的参数不同
D、在使用集合数据绑定时,后台方法中不支持直接使用集合形参进行数据绑定
参考答案 : D
答案说明 :
7、下面不属于@RequestParam注解类型属性的是()5分
A、id
B、value
C、name
D、required
参考答案 :A
答案说明 :
8、下面关于包装POJO类型数据绑定的说法正确的是()。5分
A、如果查询条件参数是包装类的直接基本属性,则参数名直接用对应的属性名
B、如果查询条件参数是包装类的直接基本属性,则参数名必须使用对应的“对象.属性名”
C、如果查询条件参数是包装类中POJO的子属性,则参数名必须为属性名
D、如果查询条件参数是包装类中POJO的子属性,则参数名必须为“对象.子属性.属性值”的形式
参考答案 :A
答案说明 :
多选题
9、下面几种类型中,属于Spring MVC可以绑定的简单数据类型的是()8分
A、int
B、String
C、Double
D、Array
参考答案 :A,B,C
答案说明 :
判断题
10、当前端请求的参数比较简单时,可以在后台方法的形参中直接使用Spring MVC提供的默认参数类型进行数据绑定。4分


参考答案 :对
答案说明 :
11、required用于指定参数是否必须,默认是false,表示请求中一定要有相应的参数。4分


参考答案 :错
答案说明 :默认是true
12、Spring MVC会将BindingResult对象中的内容赋给处理方法的相应参数。4分


参考答案 :对
答案说明 :
13、Formatter与Converter的作用相同,只是Formatter的源类型可以是任意类型,而Converter必须是一个String类型。4分


参考答案 :错
答案说明 :Formatter的源类型必须是一个String类型,而Converter可以是任意类型
14、自定义Converter类需要实现org.springframework.core.convert.converter.Converter接口4分


参考答案 :对
答案说明 :
15、要使用集合数据绑定,需要在包装类中定义一个包含用户信息类的集合,然后在接收方法中将参数类型定义为该包装类的集合。4分


参考答案 :对
答案说明 :
16、Spring MVC框架会通过ServletRequest将请求参数串的内容进行类型转换。4分


参考答案 :错
答案说明 :Spring MVC框架会通过数据绑定组件(DataBinder)将请求参数串的内容进行类型转换
17、在使用POJO类型数据绑定时,前端请求的参数名必须与要绑定的POJO类中的属性名一样。4分


参考答案 :对
答案说明 :
18、自定义类型转换器的配置中,Bean的类名称必须为org.springframework.context.support.ConversionServiceFactoryBean4分


参考答案 :对
答案说明 :
19、@RequestParam注解类型主要用于对请求中的参数进行定义。4分


参考答案 :对
答案说明 :
20、注册自定义的Formatter转换器类时,Bean的类名必须是org.springframework.format.support.FormattingConversionServiceFactoryBean,并且其属性为formatters 。

4分


参考答案 :对
答案说明 :
21、绑定数组与绑定集合页面传递的参数相同,只是后台接收方法的参数不同。4分


参考答案 :错
答案说明 :页面传递的内容不同
22、在执行绑定数组操作中,前台页面中复选框中传递的name属性值必须相同。4分


参考答案 :对
答案说明 :

第十四章(JSON数据交互和RESTful支持)

单选题
1、下面选项中不属于Jackson的开源包的是()。3分
A、jackson-annoations-2.8.8.jar
B、jackson-core-2.8.8.jar
C、jackson-databind-2.8.8.jar
D、jackson-data-2.8.8.jar
参考答案 : D
答案说明 :
2、下面属于RESTful风格请求的是()。3分
A、http://…/queryItems?id=1
B、http://…/queryItems?id=1&name=zhangsan
C、http://…/items/1
D、http://…/queryitems/1
参考答案 :C
答案说明 :
3、
针对GET方式RESTful风格的请求http://localhost:8080/chapter14/user/1,后台方法接收参数的路径映射写法可行的是()。

3分
A、@RequestMapping("/user/{id}",method=RequestMethod.GET)
B、@RequestMapping(value="/user/ids")
C、@GetMapping(value="/user/{ids}")
D、@GetMapping(value="/user/{id}",method=RequestMethod.GET)
参考答案 :C
答案说明 :
4、JSON对象结构中,关键字key必须为()类型。3分
A、Object
B、Array
C、String
D、Number
参考答案 :C
答案说明 :
5、下面不属于AJAX中的属性的是()。3分
A、data
B、contentType
C、dataType
D、database
参考答案 : D
答案说明 :
6、以下有关Jackson的开源包及说明错误的是()。3分
A、jackson-annoations-2.8.8.jar:JSON转换注解包
B、jackson-core-2.8.8.jar:JSON转换核心包;
C、jackson-databind-2.8.8.jar:JSON转换的数据绑定包;
D、jackson-support-2.8.8.jar:JSON转换的依赖包。
参考答案 : D
答案说明 :
7、使用@RequestMapping注解限定POST请求方法时,需要指定()。3分
A、method=RequestMethod.POST
B、method=HttpMethod.POST
C、method=POST
D、method=Method.POST
参考答案 :A
答案说明 :
多选题
8、
以下有关Spring MVC中JSON相关说法正确的是()。

3分
A、JSON是近几年才流行的一种新的数据格式,它与XML相同,都是用来存储数据的
B、JSON(JavaScript Object Notation,JS对象标记)是一种重量级的数据交换格式
C、与XML一样,JSON也是基于纯文本的数据格式
D、JSON有两种数据结构:对象结构和数组结构
参考答案 :C,D
答案说明 :
9、使用JSON可以传输的数据类型有()。3分
A、String
B、Boolean
C、数组
D、Object对象
参考答案 :A,B,C,D
答案说明 :
10、JSON使用了哪些语言的约定()。3分
A、C++
B、Perl
C、Java
D、Go
参考答案 :A,B,C,D
答案说明 :
判断题
11、JSON是理想的数据交互语言,它易于阅读和编写,同时也易于机器解析和生成5分


参考答案 :对
答案说明 :
12、MappingJackson2HttpMessageConverter类只能将Java对象转换为JSON对象和XML文档,不能将JSON对象和XML文档转换为Java对象。5分


参考答案 :错
答案说明 :可以将Java对象转换为JSON对象和XML文档,同时也可以将JSON对象和XML文档转换为Java对象
13、使用< mvc:default-servlet-handler>标签可以实现对静态资源的访问。5分


参考答案 :对
答案说明 :
14、RESTful风格在HTTP请求中,使用put、delete、post和get方式分别对应添加、删除、修改和查询的操作。5分


参考答案 :对
答案说明 :
15、元素中,mapping属性用于匹配静态资源全路径,其中“/**”表示文件夹及其子文件夹下的某个具体文件。5分


参考答案 :对
答案说明 :
16、RESTful也称之为REST,是一种软件架构标准。5分


参考答案 :错
答案说明 :
17、XML相对于JSON来说,解析速度更快,占用空间更小。5分


参考答案 :错
答案说明 :
18、
@PathVariable(“id”)注解用于接收并绑定请求参数,如果请求路径中的参数名方法形参名称一样,则@PathVariable后面的“(“id”)”可以省略()。

5分


参考答案 :对
答案说明 :
19、JSON对象结构以“{”开始,以“}”结束,中间部分由0个或多个以英文“,”分隔的name/value对构成。5分


参考答案 :对
答案说明 :
20、
JSON对象数据结构的关键字(key)必须为String类型,值(value)可以是String、Number、Object、Array等数据类型()。

5分


参考答案 :对
答案说明 :
21、@RequestBody用于将请求体中的数据绑定到方法的形参中,使用时用在方法的形参上。5分


参考答案 :对
答案说明 :
22、RESTful也称之为REST,是英文“Representational State Transfer”的简称5分


参考答案 :对
答案说明 :
23、在web.xml中激活tomcat的静态资源拦截,这种配置方式运行效率高。5分


参考答案 :对
答案说明 :
24、JSON的对象和数组两种数据结构可以分别组合构成更为复杂的数据结构。5分


参考答案 :对
答案说明 :

第十五章(拦截器)

单选题
1、下列关于拦截器的执行流程说法错误的是( )3分
A、程序首先会执行拦截器类中的preHandle()方法
B、如果preHandle()方法的返回值为true,则程序会继续向下执行处理器中的方法,否则将不再向下执行
C、在业务处理器(即控制器Controller类)处理完请求后,会执行preHandle()方法
D、在DispatcherServlet处理完请求后,才会执行afterCompletion()方法
参考答案 :C
答案说明 :会执行postHandle()方法
2、
以下有关Spring MVC配置文件中拦截器的配置说法错误的是()。

3分
A、要使用Spring MVC中拦截器,要先自定义拦截器还需要在配置文件中进行配置
B、< mvc:interceptors>元素用于配置一组拦截器,其子元素< bean>中定义的是指定路径的拦截器
C、< mvc:interceptors>元素中可以同时配置多个< mvc:interceptor>子元素
D、< mvc:exclude-mapping>元素用于配置不需要拦截的路径请求
参考答案 :B
答案说明 :
3、下面不属于拦截器类中的方法的是()。3分
A、preHandler()
B、postHandle()
C、afterCompletion()
D、afterpletion()
参考答案 : D
答案说明 :
4、以下哪个方法可以定义Spring MVC中的拦截器( )3分
A、继承HandlerInterceptor
B、实现WebRequestInterceptor
C、实现HandlerInterceptorAdapter
D、继承WebRequestInterceptor
参考答案 :B
答案说明 :
5、关于用户权限验证的执行流程,说法错误的是( )3分
A、只有登录后的用户才能访问系统中的主页面
B、如果没有登录系统而直接访问主页面,则拦截器会将请求拦截,并转发到登录页面
C、如果用户名或密码错误,会在登录页面给出相应的提示信息
D、当已登录的用户在系统主页中单击“退出”链接时,系统会回到主页面
参考答案 : D
答案说明 :回到登录页面
6、以下有关Spring MVC中自定义拦截器的方法说法错误的是()。3分
A、自定义的拦截器可实现HandlerInterceptor接口来实现
B、preHandler()方法会在控制器方法前执行,其返回值表示是否中断后续操作
C、postHandle()方法会在控制器方法和解析视图之前执行
D、afterCompletion()方法:该方法会在整个请求完成,即视图渲染结束之后执行
参考答案 :C
答案说明 :postHandle()方法会在控制器方法调用之后,且解析视图之前执行。
多选题
7、以下有关实现用户登录权限验证的说法错误的是()。6分
A、用户登录时,需要对用户名或密码使用拦截器验证
B、jsp页面进行用户登录使用POST方法进行请求
C、可以通过request.getRequestURI()方法获取请求的URI
D、用户登录成功后直接放行即可
参考答案 :A,D
答案说明 :
8、以下有关多个拦截器的执行流程说法正确的是()。6分
A、有多个拦截器时,拦截器的执行顺序与配置文件中所定义的拦截器的顺序相关
B、有多个拦截器时,postHandle()方法会按照配置文件中拦截器的配置顺序执行
C、有多个拦截器时,preHandle()方法和afterCompletion()方法则会按照配置顺序的反序执行
D、不管配置顺序如何,拦截器的afterCompletion()方法总是最后执行
参考答案 :A,D
答案说明 :
9、通过Spring MVC中的拦截器可以实现以下哪些功能()。6分
A、进行权限验证
B、记录请求信息的日志
C、判断用户是否登录
D、资源清理
参考答案 :A,B,C,D
答案说明 :
10、
以下哪些方法可以定义Spring MVC中的拦截器()。

6分
A、实现HandlerInterceptor接口
B、实现WebRequestInterceptor接口
C、继承HandlerInterceptorAdapter类
D、继承WebRequestInterceptor类
参考答案 :A,B,C
答案说明 :
11、以下哪些属于< mvc:interceptors>元素的子元素()。6分
A、< mvc:interceptor>
B、< bean>
C、< ref>
D、< mvc:mapping>
参考答案 :A,B,C
答案说明 :< mvc:mapping>属于< mvc:interceptor>的子元素
判断题
12、在执行完拦截器postHandle()方法后就会在业务处理器中进行请求处理。4分


参考答案 :错
答案说明 :
13、要使自定义的拦截器类生效,还需要在Spring MVC的配置文件中进行配置。4分


参考答案 :对
答案说明 :
14、要使用Spring MVC中的拦截器,必须自定义拦截器类就可以了。4分


参考答案 :错
答案说明 :
15、拦截器类中的preHandler()方法会在控制器方法前执行。4分


参考答案 :对
答案说明 :
16、在同一个< mvc:interceptor>元素下可以使用多个< bean>来配置多个拦截器类。4分


参考答案 :对
答案说明 :可以,但不建议,因为这样不能区分不同的拦截路径
17、配置拦截器时,必须将path的属性值设置为/**。4分


参考答案 :错
答案说明 :设置作用路径即可
18、在实现用户登录页面,可以使用GET方式提交登录请求。4分


参考答案 :对
答案说明 :
19、开发中,通常只需要自定义一个拦截器,在该拦截器的不同方法中就可以处理不同的请求了。4分


参考答案 :错
答案说明 :
20、拦截器的执行是有一定顺序的,该顺序与配置文件中所定义的拦截器的顺序相关。4分


参考答案 :对
答案说明 :
21、当拦截器类中的preHandle()方法返回值为false,则程序会继续向下执行。4分


参考答案 :错
答案说明 :
22、
在实现用户登录权限验证中,需要定义一个登录拦截器,并在拦截器的postHandle()方法中编写业务逻辑进行登录控制()。

4分


参考答案 :错
答案说明 :
23、可以通过继承HandlerInterceptorAdapter来定义拦截器类。4分


参考答案 :对
答案说明 :
24、在Spring MVC配置文件中,可以指定多个< mvc:interceptors>元素用于配置拦截器。4分


参考答案 :错
答案说明 :

第十六章(文件上传和下载)

单选题
1、JSON对象结构中,关键字key必须为()类型。3分
A、Object
B、Array
C、String
D、Number
参考答案 :C
答案说明 :
2、下面选项中不属于Jackson的开源包的是()。3分
A、jackson-annoations-2.8.8.jar
B、jackson-core-2.8.8.jar
C、jackson-databind-2.8.8.jar
D、jackson-data-2.8.8.jar
参考答案 : D
答案说明 :
3、
针对GET方式RESTful风格的请求http://localhost:8080/chapter14/user/1,后台方法接收参数的路径映射写法可行的是()。

3分
A、@RequestMapping("/user/{id}",method=RequestMethod.GET)
B、@RequestMapping(value="/user/ids")
C、@GetMapping(value="/user/{ids}")
D、@GetMapping(value="/user/{id}",method=RequestMethod.GET)
参考答案 :C
答案说明 :
4、以下有关Jackson的开源包及说明错误的是()。3分
A、jackson-annoations-2.8.8.jar:JSON转换注解包
B、jackson-core-2.8.8.jar:JSON转换核心包;
C、jackson-databind-2.8.8.jar:JSON转换的数据绑定包;
D、jackson-support-2.8.8.jar:JSON转换的依赖包。
参考答案 : D
答案说明 :
5、下面属于RESTful风格请求的是()。3分
A、http://…/queryItems?id=1
B、http://…/queryItems?id=1&name=zhangsan
C、http://…/items/1
D、http://…/queryitems/1
参考答案 :C
答案说明 :
6、下面不属于AJAX中的属性的是()。3分
A、data
B、contentType
C、dataType
D、database
参考答案 : D
答案说明 :
7、使用@RequestMapping注解限定POST请求方法时,需要指定()。3分
A、method=RequestMethod.POST
B、method=HttpMethod.POST
C、method=POST
D、method=Method.POST
参考答案 :A
答案说明 :
多选题
8、
以下有关Spring MVC中JSON相关说法正确的是()。

3分
A、JSON是近几年才流行的一种新的数据格式,它与XML相同,都是用来存储数据的
B、JSON(JavaScript Object Notation,JS对象标记)是一种重量级的数据交换格式
C、与XML一样,JSON也是基于纯文本的数据格式
D、JSON有两种数据结构:对象结构和数组结构
参考答案 :C,D
答案说明 :
9、使用JSON可以传输的数据类型有()。3分
A、String
B、Boolean
C、数组
D、Object对象
参考答案 :A,B,C,D
答案说明 :
10、JSON使用了哪些语言的约定()。3分
A、C++
B、Perl
C、Java
D、Go
参考答案 :A,B,C,D
答案说明 :
判断题
11、在web.xml中激活tomcat的静态资源拦截,这种配置方式运行效率高。5分


参考答案 :对
答案说明 :
12、RESTful风格在HTTP请求中,使用put、delete、post和get方式分别对应添加、删除、修改和查询的操作。5分


参考答案 :对
答案说明 :
13、JSON对象结构以“{”开始,以“}”结束,中间部分由0个或多个以英文“,”分隔的name/value对构成。5分


参考答案 :对
答案说明 :
14、MappingJackson2HttpMessageConverter类只能将Java对象转换为JSON对象和XML文档,不能将JSON对象和XML文档转换为Java对象。5分


参考答案 :错
答案说明 :可以将Java对象转换为JSON对象和XML文档,同时也可以将JSON对象和XML文档转换为Java对象
15、RESTful也称之为REST,是英文“Representational State Transfer”的简称5分


参考答案 :对
答案说明 :
16、元素中,mapping属性用于匹配静态资源全路径,其中“/**”表示文件夹及其子文件夹下的某个具体文件。5分


参考答案 :对
答案说明 :
17、
@PathVariable(“id”)注解用于接收并绑定请求参数,如果请求路径中的参数名方法形参名称一样,则@PathVariable后面的“(“id”)”可以省略()。

5分


参考答案 :对
答案说明 :
18、JSON是理想的数据交互语言,它易于阅读和编写,同时也易于机器解析和生成5分


参考答案 :对
答案说明 :
19、JSON的对象和数组两种数据结构可以分别组合构成更为复杂的数据结构。5分


参考答案 :对
答案说明 :
20、@RequestBody用于将请求体中的数据绑定到方法的形参中,使用时用在方法的形参上。5分


参考答案 :对
答案说明 :
21、XML相对于JSON来说,解析速度更快,占用空间更小。5分


参考答案 :错
答案说明 :
22、RESTful也称之为REST,是一种软件架构标准。5分


参考答案 :错
答案说明 :
23、使用< mvc:default-servlet-handler>标签可以实现对静态资源的访问。5分


参考答案 :对
答案说明 :
24、
JSON对象数据结构的关键字(key)必须为String类型,值(value)可以是String、Number、Object、Array等数据类型()。

5分


参考答案 :对
答案说明 :

第十七章(SSM框架整合)

单选题
1、下列关于SSM框架的整合说法错误的是( )4分
A、Spring MVC与Spring之间不存在整合的问题
B、SSM框架的整合就涉及到Spring与MyBatis的整合
C、SSM框架的整合就涉及到Spring MVC与MyBatis的整合
D、SSM框架的整合就涉及到Spring MVC与Spring之间的整合
参考答案 : D
答案说明 :
2、下列选项中,不属于SSM整合时所需的JAR包的是()。4分
A、spring-web-4.3.6.RELEASE.jar
B、spring-webmvc-4.3.6.RELEASE.jar
C、ant-1.9.6.jar
D、xwork-core-2.3.24.jar
参考答案 : D
答案说明 :xwork-core-2.3.24.jar是Struts2中的JAR包
3、下面选项中,不属于整合SSM框架所编写的配置文件的是( )4分
A、db.properties
B、applicationContext.xml
C、mybatis-config.xml
D、struts.xml
参考答案 : D
答案说明 :struts.xml是Struts2的配置文件
4、下列选项中,不需要配置在web.xml中的是()。4分
A、Spring的监听器
B、编码过滤器
C、视图解析器
D、前端控制器
参考答案 :C
答案说明 :视图解析器配置在Spring MVC的配置文件中
5、下列选项中,属于Spring MVC所必须的JAR包的是()。4分
A、spring-web-4.3.6.RELEASE.jar
B、spring-webmvc-portlet-4.3.6.RELEASE.jar
C、spring-webmvc-4.3.6.RELEASE-javadoc.jar
D、spring-websocket-4.3.6.RELEASE.jar
参考答案 :A
答案说明 :
多选题
6、下列选项中,属于SSM框架整合时所编写的配置文件的是()。4分
A、db.properties
B、applicationContext.xml
C、C、mybatis-config.xml
D、struts.xml
参考答案 :A,B,C
答案说明 :struts.xml是Struts2的配置文件
7、下列选项中,需要配置在web.xml中的是()。4分
A、Spring的监听器
B、编码过滤器
C、视图解析器
D、前端控制器
参考答案 :A,B,D
答案说明 :视图解析器配置在Spring MVC的配置文件中
8、下列选项中,不是Spring MVC所必须的JAR包的是()。4分
A、spring-web-4.3.6.RELEASE.jar
B、spring-webmvc-portlet-4.3.6.RELEASE.jar
C、spring-webmvc-4.3.6.RELEASE-javadoc.jar
D、spring-websocket-4.3.6.RELEASE.jar
参考答案 :B,C,D
答案说明 :
9、下列选项中,属于SSM整合时所需的JAR包的是()。4分
A、spring-web-4.3.6.RELEASE.jar
B、spring-webmvc-4.3.6.RELEASE.jar
C、ant-1.9.6.jar
D、xwork-core-2.3.24.jar
参考答案 :A,B,C
答案说明 :xwork-core-2.3.24.jar是Struts2框架中的JAR包
10、下列关于SSM框架的整合说法正确的是( )。4分
A、Spring MVC与Spring之间不存在整合的问题
B、SSM框架的整合就涉及到Spring与MyBatis的整合
C、SSM框架的整合就涉及到Spring MVC与MyBatis的整合
D、SSM框架的整合就涉及到Spring MVC与Spring之间的整合
参考答案 :A,B,C
答案说明 :除涉及到Spring MVC与Spring之间的整合外,还涉及到Spring
判断题
11、@Autowired注解需要标注在Service层的实现类上,这样才能实现依赖注入。6分


参考答案 :错
答案说明 :标注在属性上
12、查询操作也会被程序纳入事务管理范围。6分


参考答案 :错
答案说明 :查询操作不需要事务管理
13、SSM整合时,只需要一个整合的中间JAR。6分


参考答案 :对
答案说明 :
14、如果Spring与MyBatis框架整合成功,那么我们就可以通过调用Spring中实例对象中的查询方法来执行MyBatis映射文件中的SQL语句。6分


参考答案 :对
答案说明 :
15、在实际开发时,为了避免Spring配置文件中的信息过于臃肿,通常会将Spring配置文件中的信息按照不同的功能分散在多个配置文件中。6分


参考答案 :对
答案说明 :
16、@Transactional注解主要是针对数据的增加、修改、删除和查询进行事务管理。6分


参考答案 :错
答案说明 :查询不需要事务管理
17、在Spring MVC的配置文件中,可以不配置视图解析器。6分


参考答案 :对
答案说明 :
18、在web.xml中,配置信息< url-pattern>/中的“/”表示拦截除jsp外的所有请求。6分


参考答案 :对
答案说明 :
19、在Spring MVC的配置文件中,视图解析器是必须配置的6分


参考答案 :错
答案说明 :
20、Spring与Spring MVC,Spring MVC与MyBatis需要相互整合。6分


参考答案 :错
答案说明 :

你可能感兴趣的:(JavaEE企业级应用开发教程 传智课后题答案)