章节测验
1.spring基本应用
1.[单选题] 以下关于Spring核心容器相关说法错误的是()。
A.Spring框架的所有功能都是通过其核心容器来实现的
B.创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理
C.ApplicationContext不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持
D.通常在Java项目中,会采用通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器的方式,而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成
答案:A
2.[单选题] 以下有关Spring框架优点的说法正确的是()。
A.Spring具有简单、可测试和松耦合等特点,从这个角度出发,Spring就是应用于任何Java应用的开发中;
B.Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性
C.Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,杜绝了组件之间的耦合性
D.Spring增加了Java EE开发中一些API的使用难度
答案:B
3.[单选题] Spring的核心容器是其他模块建立的基础,以下哪个不是该容器的组成模块()
A.Beans模块
B.Core模块
C.Context模块
D.AOP模块
答案:D
4.[单选题] 以下有关Spring的四个基础包说法正确的是()。
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
5.[单选题] 下列选项中,不属于Spring框架优点的是()。
A.提供强大的、可以有效减少页面代码的标签
B.声明式事务的支持
C.方便解耦、简化开发
D.方便集成各种优秀框架
答案:A
6.[单选题] 下列有关Spring框架的描述,错误的是()
A.Spring是Java Web开发框架
B.Spring是轻量级框架
C.Spring是开源框架
D.Spring是持久层框架
答案:D
7.[多选题] 下列有关Spring框架的描述,正确的有()
A.Spring是持久层框架
B.Spring是Java Web开发框架
C.Spring是开源框架
D.Spring是一个重量级框架
答案:BC
8.[多选题] Spring的核心容器是其他模块建立的基础,以下哪些属于该容器的组成模块()。
A.Beans模块
B.Core模块
C.SpEL
D.AOP模块
答案:ABC
9.[多选题] 下列选项中,属于Spring框架优点的有()。
A.方便解耦、简化开发
B.AOP编程的支持
C.方便集成各种优秀框架
D.声明式事务的支持
答案:ABCD
10.[多选题] 以下哪些属于Spring框架模块()。
A.Core Container
B.Data Access/Integration
C.IoC
D.Messaging
答案:ABD
11.[多选题] 以下有关Spring核心容器的说法正确的是()。
A.Spring框架提供了两种核心容器,分别为BeanFactory和ApplicationContext
B. BeanFactory由org.springframework.beans.facytory.BeanFactory接口定义,是基础类型的IoC容器
C.BeanFactory就是一个管理Bean的工厂,它主要负责初始化各种Bean,并调用它们的生命周期方法
D.ApplicationContext是BeanFactory的子接口,也被称为应用上下文,是另一种常用的Spring核心容器
答案:ABCD
12.[多选题] 以下有关依赖注入相关说法正确的是()。
A.依赖注入(DI)与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念
B.在传统模式下,调用者通常会采用“new 被调用者”的代码方式来创建对象,这种方式会导致调用者与被调用者之间的耦合性增加,不利于后期项目的升级和维护
C.在使用Spring框架之后,控制权由应用代码转移到了Spring容器,控制权发生了反转,这就是Spring的控制反转
D.从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,相当于为调用者注入了依赖的实例,这就是Spring的依赖注入
答案:ABCD
13.[判断题] 在传统模式下,采用“new 被调用者”的方式来创建对象会导致调用者与被调用者之间的耦合性增加,不利于后期项目的升级和维护()。
答案 :对
14.[判断题] Spring具有简单、可测试和松耦合等特点()
答案 :对
15.[判断题] Spring框架的主要功能是通过其核心容器来实现的()。
答案 :对
16.[判断题] Spring是一个轻量级的开源框架()
答案 :对
17.[判断题] Spring框架提供了两种核心容器,分别为BeanFactory和ApplicationContext()。
答案 :对
18.[判断题] 依赖注入的作用就是在使用Spring框架创建对象时,动态的将其所依赖的对象注入到Bean组件()。
答案 :对
19.[判断题] 通常在Java项目中,会采用通过FileSystemXmlApplicationContext类来实例化ApplicationContext容器的方式()。
答案 :错
20.[判断题] Spring不仅可以用于服务器端开发,也可以应用于任何Java应用的开发中()。
答案 :对
21.[判断题] Spring配置文件的名称可以自定义,通常在实际开发中,都会将配置文件命名为applicationContext.xml()。
答案 :对
22.[判断题] 依赖注入(DI)与控制反转(IoC)的含义不同,描述的不是同一个概念()。
答案 :错
23.[判断题] Spring对服务器端三层体系架构的每一层都提供了技术支持()
我的答案 :对
24.[判断题] Spring开发不需要任何第三方依赖包()。
答案 :错
25.[判断题] Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,大大的降低了组件之间的耦合性()。
答案 :对
26.[判断题] Spring框架采用的是分层架构,它一系列的功能要素被分成20个模块()。
答案 :对
27.[判断题] Spring框架可以和Struts2和Hibernate框架进行整合()
答案 :对
28.[判断题] Spirng框架的Beans模块提供了Spring框架的基本组成部分,包括IoC和DI功能()。
答案 :错
29.[判断题] Spring是由Rod Johnson组织和开发的一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架()。
答案 :对
30.[判断题] Spring的第一个版本是在2004年发布的()。
答案 :对
31.[判断题] Spring中基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖()。
答案 :对
2.Spring中的Bean
1【单选题】
Spring中定义了一系列的注解,以下有关其常用的注解说明错误的是()。
A、
@Autowired用于对Bean的属性变量、属性的setter方法及构造方法进行标注,配合对应的注解处理器完成Bean的自动配置工作,默认按照Bean的名称进行装配。
B、
@Repository用于将数据访问层(DAO层)的类标识为Spring中的Bean
C、
@Service通常作用在业务层(Service层),用于将业务层的类标识为Spring中的Bean
D、
@Controller通常作用在控制层(如Spring MVC的Controller),用于将控制层的类标识为Spring中的Bean
正确答案: A
2
【单选题】Spring的元素中的autowire属性取值不包括以下()。
A、
default
B、
byName
C、
byType
D、
byId
正确答案: D
3
【单选题】以下有关Bean的singleton作用域说法错误的是()。
A、
prototype是Spring容器默认的作用域
B、
对需要保持会话状态的Bean(如Struts2的Action类)应该使用prototype作用域
C、
在使用prototype作用域时,Spring容器会为每个对该Bean的请求都创建一个新的实例
D、
要将Bean定义为prototype作用域,只需在配置文件中将<bean>元素的scope属性值设置为prototype即可
正确答案: A
4
【单选题】下列选项中,不属于Spring中实例化Bean的方式的是()。
A、
构造器实例化
B、
静态工厂方式实例化
C、
实例工厂方式实例化
D、
抽象方法实例化
正确答案: D
5
【单选题】以下哪些不属于Spring 4.3版本中Bean的作用域()
A、
application
B、
request
C、
response
D、
globalSession
正确答案: C
6
【单选题】以下有关Spring中Bean的作用域说法正确的是()。
A、
Spring 4.3中为Bean的实例定义了5种作用域
B、
使用prototype定义的Bean在Spring容器中将只有一个实例,也就是说,无论有多少个Bean引用它,始终将指向同一个对象
C、
每次通过Spring容器获取的singleton定义的Bean时,容器都将创建一个新的Bean实例
D、
globalSession:在一个全局的HTTP Session中,容器会返回该Bean的同一个实例。
正确答案: D
7
【填空题】实例工厂方式采用直接创建Bean实例的方式,在配置文件中,需要实例化的Bean是通过【】属性指向配置的实例工厂,然后使用factory-method属性确定使用工厂中的哪个方法。
正确答案:
第一空:
factory-bean;
8
【填空题】Spring中要将Bean的作用域定义成singleton,只需将scope的属性值设置为【】即可。
正确答案:
第一空:
singleton;
9
【填空题】通过Spring容器创建一个Bean的实例时,不仅可以完成Bean的实例化,还可以为Bean指定特定的【】。
正确答案:
第一空:
作用域;
10
【填空题】所谓自动装配,就是将一个Bean自动的注入到到其他Bean的【】中。(注写英文,首字母大写)
正确答案:
第一空:
Property;
11
【填空题】【】注解用于将数据访问层(DAO层)的类标识为Spring中的Bean,其功能与@Component 相同。
正确答案:
第一空:
@Repository;
12
【填空题】Spring实例化Bean有三种方式,分别为构造器实例化、静态工厂方式实例化和【】。注:写完整类似:…方式实例化
正确答案:
第一空:
实例工厂方式实例化;
13
【填空题】Spring中的一系列的注解中, @Repository、@Service与@Controller功能与【】注解的功能相同。
正确答案:
第一空:
@Component;
14
【填空题】要将Bean定义为prototype作用域,只需在配置文件中将元素的scope属性值设置为【】即可。
正确答案:
第一空:
prototype;
15
【填空题】静态工厂方式实例化Bean时,其class属性指定的是【】,同时还需要使用factory-method属性来指定所创建的【】。
正确答案:
第一空:
静态工厂类
第二空:
静态工厂方法;
16
【填空题】构造器实例化是指Spring容器通过Bean对应类中默认的【】来实例化Bean。
正确答案:
第一空:
无参构造方法;
17
【填空题】Spring容器支持多种形式的Bean的装配方式,如基于【】的装配、基于注解(Annotation)的装配和自动装配。(注:答案要大写)
正确答案:
第一空:
XML;
18
【填空题】在Spring配置文件中,Bean的作用域是通过元素的【】属性来指定的。
正确答案:
第一空:
scope;
19
【填空题】对需要保持会话状态的Bean(如Struts2的Action类)应该使用【】作用域。
正确答案:
第一空:
prototype;
20
【填空题】Spring的元素中包含一个【】属性,我们可以通过设置该属性值来自动装配Bean。
正确答案:
第一空:
autowire;
21
【填空题】
在配置文件中,通常一个普通的Bean只需要定义【】(或【】)和【】两个属性即可。
正确答案:
第一空:
id
第二空:
name
第三空:
class;
22
【填空题】静态工厂方式实例化Bean时,其class属性指定的是静态工厂类,同时还需要使用【】属性来指定所创建的静态工厂方法。
正确答案:
第一空:
factory-method;
23
【填空题】Spring容器支持【】(注:大写)和【】(注:首字母大写)两种格式的配置文件,在实际开发中,最常使用的就是【】格式的配置方式。
正确答案:
第一空:
XML
第二空:
Properties
第三空:
XML;
24
【填空题】Spring可以被看做是一个大型工厂,这个工厂的作用就是生产和管理Spring容器中的【】。
正确答案:
第一空:
Bean;
25
【判断题】singleton是Spring容器默认的作用域()。
正确答案:√
26
【判断题】使用基于基于Annotation的装配可以较大程度上解决基于XML方式装配导致的配置文件臃肿和难以维护等问题()。
正确答案:√
27
【判断题】prototype是Spring容器默认的作用域()。
正确答案:×
28
【判断题】Bean的装配可以理解为依赖关系注入,Bean的装配方式即Bean依赖注入的方式()。
正确答案:√
29
【判断题】对需要保持会话状态的Bean(如Struts2的Action类)应该使用prototype作用域()。
正确答案:√
30
【判断题】静态工厂的方法来创建Bean实例,其class属性指定的同样是Bean实例的实现类,同时还需要使用factory-method属性来指定所创建的静态工厂方法()。
正确答案:×
31
【判断题】所谓自动装配,就是将一个Bean自动的注入到到其他Bean的Property中()。
正确答案:√
32
【判断题】Spring 4.3版本中为Bean的实例定义了7种作用域()。
正确答案:√
33
【判断题】Spring容器可以管理singleton作用域的Bean的生命周期()
正确答案:√
34
【判断题】Spring可以被看做是一个大型工厂,这个工厂的作用就是生产和管理Spring容器中的Bean。()
正确答案:√
35
【判断题】Spring的元素中包含一个autowire属性,我们可以通过设置autowire的属性值来自动装配Bean()。
正确答案:√
36
【判断题】Spring容器也可以管理prototype作用域的Bean的生命周期()。
正确答案:×
37
【判断题】Spring中使用prototype定义的Bean在Spring容器中将只有一个实例,也就是说,无论有多少个Bean引用它,始终将指向同一个对象()。
正确答案:×
38
【判断题】构造器实例化是指Spring容器通过Bean对应类中默认的无参构造方法来实例化Bean()。
正确答案:√
39
【判断题】在配置文件中,通常一个普通的Bean只需要定义id(或name)和class 两个属性即可()。
正确答案:√
40
【判断题】singleton作用域对于无会话状态的Bean(如Dao 组件、Service组件)来说,是最理想的选择()。
正确答案:√
41
【判断题】通过Spring容器创建一个Bean的实例时,不仅可以完成Bean的实例化,还可以为Bean指定特定的作用域()。
正确答案:√
42
【判断题】在Spring中,XML配置文件的根元素是,中包含了多个子元素,每一个子元素定义了一个Bean,并描述了该Bean如何被装配到Spring容器中()。
正确答案:√
43
【判断题】如果在Bean中未指定id和name,则Spring会将class值当作id使用()。
正确答案:√
44
【判断题】Spring容器支持XML和Properties两种格式的配置文件,在实际开发中,最常使用的就是Properties格式的配置方式。()。
正确答案:×
45
【判断题】Spring容器支持多种形式的Bean的装配方式,如基于XML的装配、基于注解(Annotation)的装配和自动装配(其中最常用的是基于XML的装配)()。
正确答案:×
3 Spring AOP
1
【单选题】下列有关AOP专业术语中,用于指那些被拦截到的点的是()。
A、
Joinpoint
B、
Pointcut
C、
Aspect
D、
Advice
正确答案: A
2
【单选题】以下有关CGLIB代理相关说法正确的是()。
A、
CGLIB代理的使用非常简单,但它还有一定的局限性——使用动态代理的对象必须实现一个或多个接口
B、
如果要对没有实现接口的类进行代理,那么可以使用JDK代理
C、
CGLIB是一个高性能开源的代码生成包,在使用时需要另外导入CGLIB所需要的包
D、
Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理
正确答案: D
3
【单选题】关于AspectJ注解的介绍,说法错误的是()。
A、
@Aspect用于定义一个切面
B、
@Pointcut用于定义切入点表达式
C、
@Before用于定义前置通知,相当于BeforeAdvice
D、
@After用于定义后置通知,相当于AfterReturningAdvice
正确答案: D
4
【单选题】以下不属于ProxyFactoryBean类中的常用可配置属性的是()。
A、
target
B、
proxyInterfaces
C、
targetClass
D、
interceptorNames
正确答案: C
5
【单选题】以下关于Spring AOP 的介绍错误的是()。
A、
AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)
B、
AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,这种采用横向抽取机制的方式,采用OOP思想是无法办到的
C、
虽然AOP是一种新的编程思想,采取横向抽取机制,是OOP的升级替代品
D、
目前最流行的AOP框架有两个,分别为Spring AOP和AspectJ
正确答案: C
6
【单选题】下列有关AOP专业术语中,用于表示切面与程序流程的交叉点的是()。
A、
Joinpoint
B、
Pointcut
C、
Aspect
D、
Advice
正确答案: B
7
【多选题】下列有关JDK动态代理的描述,正确的有()。
A、
JDK动态代理是通过java.lang.reflect.Proxy 类来实现的
B、
对于使用业务接口的类,Spring默认会使用JDK动态代理来实现AOP
C、
Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理
D、
使用JDK动态代理的对象不必实现接口
正确答案: ABC
8
【多选题】以下有关Spring中的通知类型及说法正确的是()。
A、
MethodInterceptor:在目标方法执行前后实施增强,可以应用于日志、事务管理等功能
B、
MethodBeforeAdvice: 在目标方法执行前实施增强,可以应用于权限管理等功能
C、
AfterReturningAdvice: 在目标方法执行后实施增强,可以应用于关闭流、上传文件、删除临时文件等功能
D、
ThrowsAdvice: 在方法抛出异常后实施增强,可以应用于处理异常记录日志等功能
正确答案: ABCD
【多选题】以下有关基于XML的声明式AspectJ及配置说法正确的是()。
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包
正确答案: ABD
10
【多选题】以下关于Spring AOP 的介绍正确的是()。
A、
AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)
B、
AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,然后在程序编译或运行时,再将这些提取出来的代码应用到需要执行的地方
C、
虽然AOP是一种新的编程思想,但却不是OOP的替代品,它只是OOP的延伸和补充
D、
目前最流行的AOP框架有两个,分别为Spring AOP和AspectJ
正确答案: ABCD
11
【多选题】以下术语Spring AOP常用术语的有()。
A、
Aspect
B、
Joinpoint
C、
Pointcut
D、
Weaving
正确答案: ABCD
12
【填空题】ProxyFactoryBean是FactoryBean接口的实现类,FactoryBean负责实例化一个Bean,而ProxyFactoryBean负责为其他Bean创建【】。
正确答案:
第一空:
代理实例
13
【填空题】AOP手动使用代理模式有两个典型的例子,分别为JDK动态代理和【】。
正确答案:
第一空:
CGLIB代理
14
【填空题】
在Spring的配置文件中,切入点是通过【】元素来定义的。
正确答案:
第一空:
aop:pointcut
15
【填空题】
【】:将切面代码插入到目标对象上,从而生成代理对象的过程。
正确答案:
第一空:
Weaving;织入
16
【填空题】JDK动态代理是通过java.lang.reflect.Proxy 类来实现的,我们可以调用Proxy类的【】方法来创建代理对象。
正确答案:
第一空:
newProxyInstance()
17
【填空题】AOP采取【】,将分散在各个方法中的重复代码提取出来,然后在程序编译或运行时,再将这些提取出来的代码应用到需要执行的地方。
正确答案:
第一空:
横向抽取机制
18
【填空题】
【】: 在目标方法执行后实施增强,可以应用于关闭流、上传文件、删除临时文件等功能。
正确答案:
第一空:
AfterReturningAdvice;后置通知
19
【填空题】
基于XML的声明式AspectJ是指通过XML文件来定义切面、切入点及通知,所有的切面、切入点和通知都必须定义在【】元素内。
正确答案:
第一空:
aop:config
20
【填空题】Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理,对于使用业务接口的类,Spring默认会使用【】来实现AOP。
正确答案:
第一空:
JDK动态代理
21
【填空题】
在Spring的配置文件中,配置切面使用的是【】元素。
正确答案:
第一空:
aop:aspect
22
【填空题】【】注解用于定义一个切面。
正确答案:
第一空:
@Aspect
23
【填空题】
使用CGLIB创建代理类,该代理类需要实现MethodInterceptor接口,并实现接口中的【】方法。(注:方法名后加())
正确答案:
第一空:
intercept()
24
【填空题】
AOP术语中【】表示AOP框架在特定的切入点执行的增强处理,即在定义好的切入点处所要执行的程序代码。(注:写英文)
正确答案:
第一空:
Advice
25
【填空题】
在实际应用中,【】通常是指封装的用于横向插入系统功能(如事务、日志等)的类。
正确答案:
第一空:
Aspect;切面
26
【填空题】AOP动态代理模式有两个典型的例子,分别为【】和CGLIB代理。
正确答案:
第一空:
JDK动态代理
27
【填空题】
Spring配置文件中的元素下可以包含多个aop:config元素,一个aop:config元素中又可以包含属性和子元素,其子元素包括aop:pointcut、aop:advisor和【】。
正确答案:
第一空:
aop:aspect
28
【填空题】目前最流行的AOP框架有两个,分别为【】和【】。
正确答案:
第一空:
SpringAOP
第二空:
AspectJ
29
【填空题】AspectJ框架中注解【】用于定义切入点表达式,在使用时还需定义一个包含名字和任意参数的方法签名来表示切入点名称。
正确答案:
第一空:
@Pointcut
30
【判断题】Spring中的通知按照在目标类方法的连接点位置,可以分为4种类型()。( )
正确答案:×
31
【判断题】如果在同一个连接点有多个通知需要执行,那么在同一切面中,目标方法之前的前置通知和环绕通知的执行顺序是未知的,目标方法之后的后置通知和环绕通知的执行顺序也是未知的()。( )
正确答案:√
32
【判断题】在Spring中,使用ProxyFactoryBean是创建AOP代理的最基本方式()。( )
正确答案:√
33
【判断题】CGLIB代理的使用非常简单,但它还有一定的局限性——使用动态代理的对象必须实现一个或多个接口()。( )
正确答案:×
34
【判断题】AspectJ框架为AOP的实现提供了一套注解,用以取代Spring配置文件中为实现AOP功能所配置的臃肿代码()。( )
正确答案:√
35
【判断题】Spring AOP中的代理就是由AOP框架动态生成的一个对象,该对象可以作为目标对象使用()。( )
正确答案:√
36
【判断题】AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,然后再将这些提取出来的代码应用到需要执行的地方, 是OOP的替代品()。( )
正确答案:×
37
【判断题】Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期间通过代理方式向目标类织入增强的代码()。( )
正确答案:√
38
【判断题】CGLIB是一个高性能开源的代码生成包,它采用非常底层的字节码技术,对指定的目标类生成一个子类,并对子类进行增强,在使用时需要另外导入CGLIB所需要的包()。( )
正确答案:×
39
【判断题】Spring配置文件中的元素下可以包含多个aop:config元素,一个aop:config元素中又可以包含属性和子元素,其子元素包括aop:pointcut、aop:advisor和aop:aspect()。( )
正确答案:√
40
【判断题】AOP的全称是Aspect-OrientedProgramming,即面向切面编程(也称面向方面编程)()。( )
正确答案:√
41
【判断题】AOP专业术语中,切面是指要对哪些Joinpoint进行拦截()。( )
正确答案:×
42
【判断题】AOP手动使用代理模式有两个典型的例子,分别为JDK动态代理和CGLIB代理()。( )
正确答案:√
43
【判断题】在Spring中,使用ProxyFactoryBean是创建AOP代理的唯一方式()。( )
正确答案:×
44
【判断题】对于使用业务接口的类,Spring默认会使用CGLIB动态代理来实现AOP()。( )
正确答案:×
45
【判断题】使用CGLIB创建代理类,该代理类需要实现MethodInterceptor接口,并实现接口中的intercept()方法()。( )
正确答案:√
46
【判断题】Spring 3.0以后,Spring AOP引入了对AspectJ的支持,并允许直接使用AspectJ进行编程,而Spring自身的AOP API也尽量与AspectJ保持一致()。( )
正确答案:×
47
【判断题】使用AspectJ实现AOP有两种方式:一种是基于XML的声明式AspectJ,另一种是基于注解的声明式AspectJ()。( )
正确答案:√
48
【判断题】Spring中的AOP代理默认就是使用CGLIB代理的方式来实现的()。( )
正确答案:×
49
【判断题】目前最流行的AOP框架有两个,分别为Spring AOP和AspectJ()。( )
正确答案:√
50
【判断题】AspectJ是一个基于Java语言的AOP框架,它提供了强大的AOP功能()。( )
正确答案:√
5.
1.1Spring 数据库开发
1
【单选题】Spring JDBC模块主要由4个包组成,其中不包括()
A、
core(核心包)
B、
dataSource(数据源包)
C、
driverClass(数据库驱动包)
D、
support(支持包)
正确答案: C
2
【单选题】下面关于update()方法描述错误的是()
A、
update()方法可以完成插入、更新、删除和查询数据的操作
B、
在JdbcTemplate类中,提供了一系列的update()方法
C、
update()方法执行后,会返回受影响的行数
D、
update()方法返回的参数是int类型
正确答案: A
3
【单选题】下面描述中,关于query()方法说法错误的是()
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<T> elementType)可以返回多行数据的结果,但必须是返回列表,elementType参数返回的是List元素类型
正确答案: C
4
【单选题】以下有关Spring的JDBC模块说法错误的是()
A、
Spring的JDBC模块负责数据库资源管理和数据处理;
B、
JDBC是Spring数据访问/集成中的重要模块;
C、
Spring框架降低了包括JDBC的使用难度;
D、
Spring JDBC的核心类是JdbcTemplate。
正确答案: A
5
【多选题】以下Spring JDBC模块的主要包及说明正确的是()
A、
core:包含了JDBC的核心功能
B、
dataSource:访问数据源的实用工具类
C、
object:以面向对象的方式访问数据库
D、
support:包含了core和dataSource包的支持类
正确答案: ABC
6
【多选题】Spring JDBC模块core包中包含的类有()
A、
JdbcTemplate
B、
SimpleJdbcInsert
C、
SimpleJdbcCall
D、
NamedParameterJdbcTemplate
正确答案: ABCD
7
【多选题】根据测试目的的不同,可以将软件测试分为()
A、
单元测试
B、
集成测试
C、
确认测试
D、
系统测试
正确答案: ABCD
8
【多选题】以下有关JdbcTemplate类中常用的update()方法说明正确的是()
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,并返回受影响的行数
正确答案: ABCD
9
【多选题】以下关于Spring框架中JdbcTemplate的说法正确的是()
A、
针对数据库的操作,Spring框架提供了JdbcTemplate类
B、
JdbcTemplate类是Spring JDBC的核心类
C、
JdbcTemplate继承自抽象类JdbcAccessor,同时实现了JdbcOperations接口
D、
JdbcOperations接口定义了在JdbcTemplate类中可以使用的操作集合,包括添加、修改、查询和删除等操作
正确答案: ABCD
10
【多选题】以下有关Spring配置文件中dataSource数据源配置时的属性说明正确的是()
A、
driverClassName:所使用的驱动名称,对应驱动JAR包中的Driver类
B、
url:数据源所在地址
C、
username:访问数据库的用户名
D、
password:访问数据库的密码
正确答案: ABCD
11
【填空题】__________就是Junit4用来测试的注解,要测试哪个方法,只需要在相应测试的方法上添加此注解即可。
正确答案:
第一空:
@Test
12
【填空题】
在applicationContext.xml中,可以使用标签的__________元素将JdbcTemplate注入到AccountDao实例中。
正确答案:
第一空:
13
【填空题】
Spring JDBC模块中dataSource包中有访问________的实用工具类。
正确答案:
第一空:
数据源
14
【填空题】
Spring JDBC模块中support包含了core和________包的支持类。
正确答案:
第一空:
object
15
【填空题】
Spring JdbcTemplate类中常用方法有__________、update()和query()方法。
正确答案:
第一空:
execute()
16
【填空题】
JdbcTemplate类的继承关系十分简单。它继承自抽象类____________,同时实现了JdbcOperations接口。
正确答案:
第一空:
JdbcAccessor
17
【填空题】
JDBC连接数据库时需要4个基本属性,包括有______________、url、username和password。
正确答案:
第一空:
driverClassName
18
【填空题】
Spring的JDBC模块负责_______________和错误处理。
正确答案:
第一空:
数据库资源管理
19
【填空题】
_______是Spring数据访问/集成中的重要模块。
正确答案:
第一空:
JDBC
20
【填空题】
JdbcTemplate类继承自抽象类JdbcAccessor,同时实现了_____________接口。
正确答案:
第一空:
JdbcOperations
21
【填空题】
Spring的JDBC模块负责数据库资源管理和____________。
正确答案:
第一空:
错误处理
22
【填空题】
Spring JDBC模块中object以__________的方式访问数据库。
正确答案:
第一空:
面向对象
23
【填空题】
定义jdbcTemplate时,需要将__________注入到jdbcTemplate中,而其他需要使用jdbcTemplate的Bean,也需要将jdbcTemplate注入到该Bean中。(注:写英文)
正确答案:
第一空:
dataSource
24
【判断题】JdbcTemplate类中的int update(String sql)方法是最简单的update方法重载形式,它直接执行传入的SQL语句,并返回受影响的行数。
正确答案:√
25
【判断题】JdbcTemplate类中的update()方法可以完成查询、插入、更新和删除数据的操作。
正确答案:×
26
【判断题】在JdbcTemplate类中,提供了大量的更新和查询数据库的方法,我们就是使用的这些方法来操作数据库的。
正确答案:√
27
【判断题】Spring JDBC模块主要由4个包组成,分别是core(核心包)、dataSource(数据源包)、object(对象包)和support(支持包)。
正确答案:√
28
【判断题】定义jdbcTemplate时,需要将dataSource注入到jdbcTemplate中。
正确答案:√
29
【判断题】在使用JdbcTemplate进行单个查询和集合查询时,封装的RowMapper对象方法一样。
正确答案:√
30
【判断题】在JdbcTemplate类中execute(String sql)方法能够完成执行SQL语句的功能。
正确答案:√
Spring 事务管理
1
【单选题】
以下关于tx:method元素的属性描述错误的是()
A、
name属性为可选属性,它指定了与事务属性相关的方法名
B、
propagation用于指定事务的传播行为,默认值为REQUIRED
C、
isolation用于指定事务的隔离级别,其默认值为DEFAULT
D、
read-only用于指定事务是否只读,其默认值为false
正确答案: A
2
【单选题】
以下有关Spring事务管理及核心接口说法错误的是()
A、
PlatformTransactionManager接口是Spring提供的平台事务管理器,主要用于管理事务
B、
TransactionDefinition接口是事务定义(描述)的对象,该对象中定义了事务规则,并提供了获取事务相关信息的方法
C、
TransactionStatus接口是事务的状态,它描述了某一时间点上事务的状态信息
D、
在事务管理过程中,传播行为可以控制是否需要创建事务以及如何创建事务,通常情况下,对于数据的查询、插入、更新和删除操作,必须进行事务管理
正确答案: D
3
【单选题】
以下基于XML方式的声明式事务管理配置文件中tx:advice元素的子元素tx:method属性描述错误的是()
A、
name:该属性为必选属性,它指定了与事务属性相关的方法名
B、
propagation:用于指定事务的传播行为,它的默认值为SUPPORTS
C、
isolation:该属性用于指定事务的隔离级别,其默认值为DEFAULT
D、
read-only:该属性用于指定事务是否只读,其默认值为false
正确答案: B
4
【单选题】
以下有关Spring中TransactionStatus接口的方法及说明错误的是()
A、
flush()刷新事务
B、
isCompleted()获取事务是否完成
C、
isNewTransaction()获取是否是新事务
D、
setFallbackOnly()设置事务回滚
正确答案: D
5
【多选题】
以下属于基于XML方式的声明式事务管理配置文件中tx:advice元素的子元素tx:method的属性有()
A、
name
B、
propagation
C、
isolation
D、
read-only
正确答案: ABCD
6
【多选题】
以下哪些属于tx:method元素中的常用属性()
A、
name
B、
propagation
C、
isolation
D、
timeout
正确答案: ABCD
7
【多选题】
以下哪些属于@Transactional注解的可配置参数()
A、
value
B、
transactionManager
C、
isolation
D、
propagation
正确答案: ABCD
8
【填空题】
在实际开发中,操作数据库时还会涉及到______管理问题。
正确答案:
第一空:
事务
9
【填空题】
声明式事务管理主要思想是将事务管理作为一个“切面”代码单独编写,然后通过______技术将事务管理的“切面”代码植入到业务目标类中。
正确答案:
第一空:
AOP
10
【填空题】
tx:method元素的属性read-only用于指定事务是否只读,其默认值为_______。
正确答案:
第一空:
false
11
【填空题】
配置tx:advice元素时,通常需要指定id和transaction-manager属性,其中id属性是配置文件中的__________。
正确答案:
第一空:
唯一标识
12
【填空题】
如果没有指定事务的传播行为,Spring默认传播行为是___________。
正确答案:
第一空:
REQUIRED
13
【填空题】
在事务管理过程中,数据的查询不会影响原数据的改变,所以不需要进行事务管理,而对于数据的插入、更新和删除操作,必须进行事务管理。如果没有指定事务的传播行为,Spring默认传播行为是___________。
正确答案:
第一空:
REQUIRED
14
【填空题】
PlatformTransactionManager接口的实现类_______________________用于配置全局事务管理器。
正确答案:
第一空:
JtaTransactionManager
15
【填空题】
Spring事务管理中的______________接口是事务的状态,它描述了某一时间点上事务的状态信息。
正确答案:
第一空:
TransactionStatus
16
【填空题】
在Spring的所有JAR包中(版本4.3.6),包含一个名为__________________________的JAR包,该包就是Spring提供的用于事务管理的依赖包。
正确答案:
第一空:
spring-tx-4.3.6.RELEASE.jar
17
【填空题】
使用基于注解方式的事务管理需要在使用事务的Spring Bean类或者Bean类的方法上添加注解______________。
正确答案:
第一空:
@Transactional
18
【填空题】
Spring的声明式事务管理可以通过两种方式来实现,一种是基于_____的方式,另一种是基于Annotation的方式。
正确答案:
第一空:
XML
19
【填空题】
基于Annotation方式的声明式事务要在需要使用事务的Spring Bean类或者Bean类的方法上添加注解_____________。
正确答案:
第一空:
@Transactional
20
【填空题】
Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于___________的方式。(注:写英文,首字母大写)
正确答案:
第一空:
Annotation
21
【填空题】
PlatformTransactionManager接口是Spring提供的平台事务管理器,主要用于管理事务,该接口中提供了_________个事务操作的方法。(注:写中文数字)
正确答案:
第一空:
三
22
【填空题】
基于XML方式的声明式事务管理配置tx:advice元素时, id属性是配置文件中的唯一标识,____________________属性用于指定事务管理器。
正确答案:
第一空:
transaction-manager
23
【填空题】
PlatformTransactionManager接口的getTransaction()方法会返回一个_______________对象,该对象就表示一个事务。
正确答案:
第一空:
TransactionStatus
24
【判断题】
Spring的事务管理简化了传统的事务管理流程,并且在一定程度上减少了开发者的工作量。
正确答案:√
25
【判断题】
注解@Transactional与tx:method元素中的事务属性基本是对应的,并且其含义也基本相似。
正确答案:√
26
【判断题】
tx:method元素的属性timeout用于指定事务超时的时间,其默认值为-1,即永不超时。
正确答案:√
27
【判断题】
在事务管理过程中,传播行为可以控制是否需要创建事务以及如何创建事务。
正确答案:√
28
【判断题】
PlatformTransactionManager接口中操作事务的方法有getTransaction()、commit()和fallback()方法。
正确答案:×
29
【判断题】
Spring中的事务管理分为两种方式:一种是传统的编程式事务管理,另一种是声明式事务管理。
正确答案:√
30
【判断题】
Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于Annotation的方式。
正确答案:√
6.初始MyBatis
1
【单选题】
有关MyBatis工作原理说法错误的是()
A、
MyBatis的全局配置文件配置了MyBatis的运行环境等信息,其中主要内容是获取数据库连接
B、
MyBatis映射文件中配置了操作数据库的SQL语句,需要在MyBatis的全局配置文件中加载才能执行
C、
可以通过MyBatis的环境等配置信息构建会话对象SqlSession
D、
SqlSession对象,该对象中包含了执行SQL的所有方法
正确答案: C
2
【单选题】
关于MyBatis模糊查询中进行SQL字符串拼接时,说法错误的是()
A、
使用“${}”进行SQL字符串拼接时,无法防止SQL注入问题
B、
可以使用MySQL中的concat()函数进行字符串拼接
C、
使用MySQL中的concat()函数进行字符串拼接,也无法防止SQL注入
D、
使用MySQL中的concat()函数进行字符串拼接,导致数据库移植性变差
正确答案: C
3
【多选题】
MyBatis框架对比与Hibernate框架的说明正确的是()
A、
使用MyBatis手动编写SQL要比使用Hibernate的工作量大
B、
MyBatis可以配置动态SQL并优化SQL
C、
MyBatis更新数据时,需要发送所有字段;不支持存储过程
D、
对于一些复杂的和需要优化性能的项目来说,使用MyBatis更加合适
正确答案: ABD
4
【多选题】
MappedStatement对象会对用户执行SQL语句的输入参数进行定义,这些参数类型可以是()
A、
Map
B、
List类型
C、
基本类型
D、
POJO类型
正确答案: ABCD
5
【多选题】
MyBatis入门程序中添加操作有关说法正确的是()
A、
在MyBatis的映射文件中,添加操作是通过<insert>元素来实现的
B、
在MyBatis的映射文件中,添加操作的parameterType必须是PO类型
C、
在MyBatis添加操作使用了SqlSession的add()方法
D、
在MyBatis添加操作需要进行事务提交
正确答案: AD
6
【多选题】
在MyBatis框架官网下载地址有几个下载链接,关于这三个下载链接说明正确的是()
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框架的源码包
正确答案: ACD
7
【多选题】
入门程序中MyBatis的全局配置文件中主要编写的内容有()
A、
数据库环境配置
B、
JDBC事务管理
C、
映射文件路径配置
D、
缓存插件配置
正确答案: ABC
8
【填空题】
使用ORM框架后,应用程序不再直接访问底层数据库,而是以_________的方式来操作持久化对象。
正确答案:
第一空:
面向对象
9
【填空题】
使用MyBatis框架非常简单,只需在应用程序中引入MyBatis的核心包和lib目录中的依赖包即可以及相关的_____________。
正确答案:
第一空:
数据库驱动包
10
【填空题】
使用MySQL中的_________函数进行字符串拼接,可以有效防止模糊查询时可能出现的SQL注入问题。(注意方法名后加())
正确答案:
第一空:
concat()
11
【填空题】
在MyBatis的映射文件中,添加操作是通过__________元素来实现的。
正确答案:
第一空:
12
【填空题】
_________是当前主流的Java持久层框架之一,它与Hibernate一样,也是一种ORM框架。
正确答案:
第一空:
MyBatis
13
【填空题】
MyBatis映射文件中配置了操作数据库的SQL语句,需要在____________中加载才能执行。
正确答案:
第一空:
MyBatis配置文件
14
【填空题】
入门程序中可以使用SqlSession的__________方法模糊查询客户信息。(注意方法名后加())
正确答案:
第一空:
selectList()
15
【填空题】
MyBatis和Hibernate都属于持久层框架,也被称之为________框架。
正确答案:
第一空:
ORM
16
【填空题】
MyBatis(前身是iBatis)是一个支持普通SQL查询、存储过程以及高级映射的________框架。
正确答案:
第一空:
持久层
17
【填空题】
MyBatis由会话工厂___________________创建SqlSession对象,该对象中包含了执行SQL的所有方法。
正确答案:
第一空:
SqlSessionFactory
18
【填空题】
MyBatis入门程序中可以使用SqlSession的_________方法执行更新操作。
正确答案:
第一空:
update()
19
【填空题】
MyBatis的更新操作在映射文件中是通过配置__________元素来实现的。
正确答案:
第一空:
20
【填空题】
mybatis-config.xml作为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,其中主要内容是获取___________。
正确答案:
第一空:
数据库连接
21
【判断题】
在MyBatis的映射文件中,添加操作是通过元素来实现的。
正确答案:×
22
【判断题】
MyBatis的更新操作在映射文件中是通过配置元素来实现的。
正确答案:√
23
【判断题】
MyBatis的全局配置文件,通常配置了MyBatis的运行环境等信息,其中主要内容是获取数据库连接。
正确答案:√
24
【判断题】
MyBatis是一个全表映射的框架,通常开发者只需定义好持久化对象到数据库表的映射关系,就可以通过MyBatis提供的方法完成持久层操作。
正确答案:×
25
【判断题】
使用MyBatis框架非常简单,只需在应用程序中引入MyBatis的核心包和lib目录中的依赖包即可进行项目运行。
正确答案:×
26
【判断题】
ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。
正确答案:√
27
【判断题】
MyBatis入门程序中进行添加操作时不会有返回值。
正确答案:×
28
【判断题】
MyBatis的删除操作在映射文件中是通过配置元素来实现的。
正确答案:√
29
【判断题】
MyBatis映射文件中配置了操作数据库的SQL语句,需要在MyBatis的全局配置文件mybatis-config.xml中加载才能执行。mybatis-config.xml可以加载多个配置文件,每个配置文件对应数据库中的一张表。
正确答案:√
30
【判断题】
MyBatis的删除操作也需要进行事务提交。
正确答案:√
MyBatis的核心配置
1
【单选题】
关于元素说法错误的是()
A、
<typeHandler>元素就是用来在配置文件中注册自定义的类型处理器的,它的使用方式有两种
B、
通过<typeHandlers>元素的子元素<typeHandler>就可以配置单个类型处理器
C、
通过<typeHandlers>元素的子元素<package>可以配置包下的所有类型处理器
D、
<typeHandlers>元素的子元素<package>的handler属性用于指定类型处理器所在的包名,系统会在启动时自动的扫描com.itheima.type包下所有的文件,并把它们作为类型处理器
正确答案: D
2
【多选题】
关于元素及其子元素的说法正确的是()
A、
A、在配置文件中,<environments>元素用于对环境进行配置
B、
在<environments>元素中可以配置1个<environment>子元素,包含事务管理和数据源的配置信息
C、
<environment>的子元素<dataSource>用于配置数据源,它的type属性用于指定使用哪种数据源
D、
可以通过<environments>元素配置多种数据源,对于数据源的配置,MyBatis框架提供了UNPOOLED、POOLED和JNDI三种数据源类型
正确答案: ABCD
3
【多选题】
有关元素相关说法正确的是()
A、
<resultMap>元素的主要作用是定义映射规则、级联的更新以及定义类型转化器等
B、
当数据表中的列和对象的属性不一致时,此时就可以使用<resultMap>元素进行处理
C、
<resultMap>元素中的<association>和<collection>用于处理多表时的关联关系
D、
以上都正确
正确答案: ABCD
4
【多选题】
关于类型处理器typeHandler的说法正确的是()
A、
typeHandler的作用就是将预处理语句中传入的参数从javaType(Java类型)转换为jdbcType(JDBC类型),或者从数据库取出结果时将jdbcType转换为javaType
B、
为了方便转换,MyBatis框架提供了一些默认的类型处理器
C、
还可以通过自定义的方式对类型处理器进行扩展(自定义类型处理器可以通过实现TypeHandler接口或者继承BaseTypeHandle类来定义)
D、
<typeHandler>元素就是用来在配置文件中注册自定义的类型处理器的,它的使用方式有两种
正确答案: ABCD
5
【多选题】
关于MyBatis配置文件中元素说法正确的是()
A、
<typeAliases>元素用于为配置文件中的Java类型设置一个简短的名字,即设置别名
B、
<typeAliases>元素的子元素<typeAlias>中的type属性用于指定需要被定义别名的类的全限定名;alias属性的属性值就是自定义的别名
C、
如果省略<typeAliases>元素的alias属性,MyBatis会默认将类名作为别名
D、
也可以通过在类名上使用@Alias(value = "user")的形式定义别名
正确答案: ABD
6
【多选题】
在配置文件中,元素用于指定MyBatis映射文件的位置,一般可以使用以下哪些方法引入映射器文件()。
A、
使用本地类路径引入
B、
使用本地文件路径引入
C、
使用接口类引入
D、
使用包名引入
正确答案: ABCD
7
【多选题】
以下有关SqlSession的说明正确的是()
A、
SqlSession是MyBatis框架中另一个重要的对象,其主要作用是执行持久化操作
B、
每一个线程都应该有一个自己的SqlSession实例,并且该实例是不能被共享的
C、
SqlSession实例也是线程不安全的,因此其使用范围最好在一次请求或一个方法中
D、
使用完SqlSession对象之后,要及时的关闭它,通常可以将其放在finally块中关闭
正确答案: ABCD
8
【填空题】
MyBaits映射文件中元素的id属性表示命名空间中的唯一标识符,常与____组合起来使用。
正确答案:
第一空:
命名空间;
9
【填空题】
MyBatis框架每次创建结果对象的新实例时,都会使用一个____的实例来完成。
正确答案:
第一空:
对象工厂;ObjectFactory;
10
【填空题】
元素的子元素用于表示哪个列是____,而____元素用于表示POJO和数据表中普通列的映射关系。
正确答案:
第一空:
主键
第二空:
;
11
【填空题】
MyBaits映射文件中使用元素的____属性可以引用自定义的代码片段,其属性值为自定义代码片段的id。
正确答案:
第一空:
refid;
12
【填空题】
MyBatis允许在已映射语句执行过程中的某一点进行拦截调用,这种拦截调用是通过插件来实现的。____元素的作用就是配置用户所开发的插件。
正确答案:
第一空:
;
13
【判断题】
SqlSession是MyBatis框架中另一个重要的对象,它是应用程序与持久层之间执行交互操作的一个单线程对象,其主要作用是执行持久化操作
正确答案:√
14
【判断题】
元素属性resultType表示从SQL语句中返回的类型的类的全限定名或者别名。如果是集合类型,那么返回的应该是集合可以包含的类型,而不是集合本身。
正确答案:√
15
【判断题】
元素表示结果映射集,是MyBatis中最重要也是最强大的元素。它的主要作用是定义映射规则、级联的更新以及定义类型转化器等
正确答案:√
16
【判断题】
MyBatis中默认的ObjectFactory的作用就是实例化目标类,它既可以通过默认构造方法实例化,也可以在参数映射存在的时候通过参数构造方法来实例化
正确答案:√
17
【判断题】
元素用于为配置文件中的Java类型设置别名,其使用的意义在于减少全限定类名的冗余
正确答案:√
18
【判断题】
MyBatis映射文件中中配置了子元素后,会首先运行,它会通过自定义的语句来设置数据表中的主键。
正确答案:√
19
【判断题】
是一个配置属性的元素,该元素通常用来将内部的配置外在化,即通过外部的配置来动态的替换内部定义的属性。
正确答案:√
20
【判断题】
SqlSessionFactory是MyBatis框架中十分重要的对象,它是单个数据库映射关系经过编译后的内存镜像,其主要作用是创建SqlSession
正确答案:√
21
【判断题】
和元素的使用比较简单,它们的属性配置也都相同。
正确答案:×
22
【判断题】
除了可以像上述通过外部配置文件来定义属性值外,还可以通过配置元素的子元素,以及通过方法参数传递的方式来获取属性值。
正确答案:√
23
【判断题】
MyBatis映射文件的元素的属性与元素的属性大部分相同,但还包含了3个特有属性。
正确答案:√
24
【判断题】
如果项目中使用的SSM整合开发,就需要在MyBatis中配置事务管理器,而在Spring中进行数据源配置。
正确答案:×
25
【判断题】
在映射文件中,元素是映射文件的根元素,其他元素都是它的子元素。
正确答案:×
26
【判断题】
元素就是用来在配置文件中注册自定义的类型处理器的。
正确答案:√
27
【判断题】
SqlSession实例也是线程安全的,可以将其放在一个类的静态字段、实例字段或任何类型的管理范围(如Servlet的HttpSession)中使用。
正确答案:×
28
【判断题】
MyBatis映射文件中的子元素必须按照指定的顺序进行配置,否则MyBatis在解析XML映射文件的时候会报错。
正确答案:×
29
【判断题】
MyBatis映射文件中元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发人员
正确答案:√
30
【判断题】
在MyBatis框架的核心配置文件中,元素是配置文件的根元素,其他元素都要在元素内配置。
正确答案:√
7.动态SQL
【单选题】
以下不属于元素中使用的属性的是()。
A、
separator
B、
collection
C、
current
D、
item
正确答案: C
2
【填空题】
在MyBaits映射文件中使用和元素组合进行update语句动态SQL组装时,如果元素内包含的内容都为空,则会出现____。
正确答案:
第一空:
SQL语法错误;
3
【填空题】
当在MyBaits文件中使用了元素,在SQL语句中可以直接引用元素的____属性值即可进行动态SQL组装。
正确答案:
第一空:
name;
4
【填空题】
在使用元素根据客户姓名和职业模糊查询客户信息时,可以使用MySQL数据库的____函数进行字符串拼接。
正确答案:
第一空:
concat;
5
【填空题】
元素通常在构建____条件语句时使用。
正确答案:
第一空:
IN;in
6
【填空题】
SQL语句中,where后直接跟and,这在运行时肯定会报____错误。
正确答案:
第一空:
SQL语法;sql语法
7
【填空题】
在MyBatis中,____元素是最常用的判断语句,它类似于Java中的if语句,主要用于实现某些简单的条件选择。
正确答案:
第一空:
;if
8
【填空题】
MyBatis中提供了元素来用于更新操作,其主要作用是在动态包含的SQL语句前输出一个____关键字,并将SQL语句中最后一个多余的逗号去除。
正确答案:
第一空:
SET;set;
9
【填空题】
动态SQL是MyBatis的强大特性之一,MyBatis3采用了功能强大的基于____的表达式来完成动态SQL。
正确答案:
第一空:
OGNL;
10
【填空题】
使用和元素相结合的方式来组装update语句时,元素就会动态前置____关键字,同时也会消除SQL语句中最后一个多余的____。
正确答案:
第一空:
SET;set
第二空:
逗号;
11
【填空题】
使用了元素时,第一个____中的条件为真,则只动态组装第一个____内的SQL片段,否则就继续向下判断第二个元素中的条件是否为真,以此类推。当前面所有when元素中的条件都不为真时,则只组装____内的SQL片段。
正确答案:
第一空:
第二空: 第三空:
;
12
【填空题】
可以执行SqlSession的____查询方法,返回结果集。
正确答案:
第一空:
selectList();
13
【填空题】
使用元素可以通过name定义一个变量,元素中____的属性值就是拼接的查询字符串。
正确答案:
第一空:
value;
14
【填空题】
MyBaits中元素的作用是去除一些特殊的字符串,它的____属性代表的是语句的前缀,而prefixOverrides属性代表的是需要去除的哪些特殊字符串。
正确答案:
第一空:
prefix;
15
【填空题】
在使用MyBaits的时,如果传入的参数是多个的时候,就需要把它们封装成一个Map了,这时候collection属性值就为Map的____。
正确答案:
第一空:
键;
16
【填空题】
如果传入的是单参数且参数类型是一个数组或者List的时候,元素collection属性值分别为array和list(或____)
正确答案:
第一空:
collection;
17
【判断题】
动态SQL是MyBatis的强大特性之一,MyBatis3采用了功能强大的基于OGNL的表达式来完成动态SQL,它消除了之前版本中需要了解的大多数元素,使用不到原来一半的元素就能完成所需工作。
正确答案:√
18
【判断题】
MyBaits中对原始SQL中的“where 1=1”的条件可以使用与元素组合进行替换。
正确答案:√
19
【判断题】
使用了元素进行SQL拼接,只要元素中的条件为真,就会进行组装。
正确答案:×
20
【判断题】
可以将任何可迭代对象(如列表、集合等)和任何的字典或者数组对象传递给作为集合参数。
正确答案:√
21
【判断题】
在MyBatis中元素用于单条件分支判断,当某个的test属性判断成立,然后跳过其他元素进行动态SQL组装。
正确答案:×
22
【判断题】
MyBatis动态SQL中元素就是为了去除组装的SQL语句中第一个多余的and或or。
正确答案:×
23
【判断题】
MyBatis中的元素可以用于对数组和集合循环遍历,批量执行SQL操作。
正确答案:√
24
【判断题】
元素中value的属性值就是拼接的查询字符串,即必须与传递的参数变量名一致,如username。
正确答案:×
25
【判断题】
在Hibernate中,如果想要更新某一个对象,就需要发送所有的字段给持久化对象。
正确答案:√
26
【判断题】
在MyBaits映射文件中使用和元素组合进行update语句动态SQL组装时,如果元素内包含的内容都为空,则会出现SQL语法错误。
正确答案:√
27
【判断题】
MyBaits中元素的作用是去除一些特殊的字符串,它的prefix属性代表的是语句的前缀,而prefixOverrides属性代表的是需要去除的哪些特殊字符串。
正确答案:√
28
【判断题】
使用MyBatis的元素来更新操作时,前端需要传入所有参数字段,否则未传入字段会默认设置为空。
正确答案:×
29
【判断题】
在使用元素时,只要test属性中的表达式为true,就会执行元素中的条件语句。
正确答案:√
30
【判断题】
MyBatis动态SQL中的、、元素类似Java中的switch…case…default语句,用于进行多条件分支判断。
正确答案:√
MyBatis的关联映射
1
【单选题】
以下关于MyBatis映射文件中元素属性的说明错误的是()
A、
property:指定映射到的实体类对象属性,与表字段一一对应;
B、
column:指定表中对应的字段
C、
javaType:指定映射到实体对象属性的类型
D、
fetchType:指定在关联查询时是否启用延迟加载。fetchType属性有lazy和eager两个属性值,默认值为eager
正确答案: D
2
【单选题】
下面关于Java对象之间的关联关系描述正确的是()
A、
一对一的关系就是在本类和对方类中定义同一个类型的对象
B、
一对多的关系:就是一个A类类型对应多个B类类型的情况
C、
多对多的关系只需要在一方的类中引入另一方类型的集合
D、
多对多关联关系需要在本类中引入本类的集合
正确答案: B
3
【单选题】
下面属性中不属于元素属性的是()
A、
property
B、
column
C、
ofType
D、
javaType
正确答案: C
4
【多选题】
MyBatis映射文件中元素通常可以配置以下属性()。
A、
property
B、
column
C、
ofType
D、
select
正确答案: ABC
5
【多选题】
以下有关MyBatis中关联映射的使用及说法正确的是()
A、
MyBatis是通过<resultMap>元素的<association>子元素该元素来处理多对一关联关系的
B、
多对多关联映射中的<association>子元素与一对多中的<association>子元素用法和属性相同
C、
MyBatis是通过<resultMap>元素的<collection>子元素该元素来处理多对一关联关系的
D、
多对多关联映射中也有嵌套查询和嵌套结果两种方式
正确答案: CD
6
【多选题】
MyBatis映射文件中元素通常可以配置以下属性()。
A、
property
B、
fetchType
C、
ofType
D、
select
正确答案: ABD
7
【填空题】
元素的属性fetchType有____和eager两个属性值。
正确答案:
第一空:
lazy;
8
【填空题】
MyBatis是通过元素的____子元素该元素来处理多对多关联关系的。
正确答案:
第一空:
;
9
【填空题】
MyBatis在映射文件中加载关联关系对象主要通过两种方式:____和嵌套结果。
正确答案:
第一空:
嵌套查询;
10
【填空题】
ofType表示属性集合中元素的类型,List属性即____类。
正确答案:
第一空:
Orders;
11
【填空题】
子元素的ofType属性与javaType属性对应,它用于指定实体对象中集合类属性所包含的____。
正确答案:
第一空:
元素类型;
12
【填空题】
实体映射文件中元素的resultMap属性值必须与元素的____属性值一样。
正确答案:
第一空:
id;
13
【填空题】
在关系型数据库中,多对多关系会产生____表,引入两张表的主键作为外键,两个主键成为联合主键或使用新的字段作为主键。
正确答案:
第一空:
中间关系;中间;
14
【填空题】
元素的____指定映射到的实体类对象属性,与表字段一一对应。
正确答案:
第一空:
property;
15
【填空题】
MyBatis在映射文件中加载关联关系对象主要通过两种方式:和
正确答案:
第一空:
嵌套查询
第二空:
嵌套结果;
16
【填空题】
MyBatis是通过元素的____子元素该元素来处理一对多关联关系的。
正确答案:
第一空:
;
17
【填空题】
当关联查询出的列名相同,则需要使用____区分。
正确答案:
第一空:
别名;
18
【填空题】
使用MyBatis时,需要将新创建的映射文件路径配置到____文件中才有效。
正确答案:
第一空:
核心配置;
19
【填空题】
MyBatis是通过元素的____子元素该元素来处理一对一关联关系的。
正确答案:
第一空:
;
20
【填空题】
在关系型数据库中,多对多关系会产生中间表,引入两张表的主键作为外键,两个主键成为____或使用新的字段作为主键。
正确答案:
第一空:
联合主键;
21
【判断题】
MyBatis中元素的属性与元素相同,且使用也很简单,同样有嵌套查询和嵌套结果两种关联方式
正确答案:×
22
【判断题】
在数据库中,多对多的关联关系通常使用一个中间表来维护,比如中间表中的订单id作为外键参照订单表的id,商品id作为外键参照商品表的id。
正确答案:√
23
【判断题】
MyBatis在映射文件中加载关联关系对象主要通过两种方式:嵌套查询和嵌套结果。
正确答案:√
24
【判断题】
MyBatis是通过元素的子元素该元素来处理一对一关联关系的。
正确答案:√
25
【判断题】
MyBatis映射文件中元素的属性select用于指定引入嵌套查询的子SQL语句,该属性用于关联映射中的嵌套查询。
正确答案:√
26
【判断题】
在关系型数据库中,一对多就是在“一”的一方,添加“多”的一方的主键作为外键。
正确答案:×
27
【判断题】
MyBatis中多对多关联映射同样有嵌套查询和嵌套结果两种关联方式。
正确答案:√
28
【判断题】
MyBatis是通过元素的子元素该元素来处理一对多关联关系的。
正确答案:√
29
【判断题】
当表中的列名与对应对象的属性名称完全一致时,在查询映射文件中可以不使用resultMap属性。
正确答案:√
30
【判断题】
在Java对象中,多对多的关系是在A类中定义B类类型的集合,在B类中定义A类类型的集合。
正确答案:√
第八章
1
【单选题】进行MyBatis与Spring的整合配置文件编写时,不包括有()
A、
db.properties
B、
applicationContext.xml
C、
mybatis-config.xml
D、
springmvc-config.xml
正确答案: D
2
【单选题】
MapperFactoryBean是MyBatis-Spring团队提供的用于根据Mapper接口生成Mapper对象的类,该类在Spring配置文件中可以配置的参数不包括()
A、
mapperInterface
B、
SqlSessionFactory
C、
SqlSessionTemplate
D、
basePackage
正确答案: D
3
【单选题】
以下不属于MapperScannerConfigurer类在Spring配置文件中使用时可以配置的属性的是()
A、
basePackage
B、
annotationClass
C、
sqlSessionFactoryBeanName
D、
mapperInterface
正确答案: D
4
【单选题】MapperScannerConfigurer类在Spring配置文件中使用时可以配置的属性及说明错误的是()
A、
basePackage:指定映射接口文件所在的包路径,当需要扫描多个包时可以使用分号或逗号作为分隔符
B、
annotationClass:指定了要扫描的注解名称,只有被注解标识的类才会被配置为映射器
C、
sqlSessionFactoryBeanName:指定在Spring中定义的SqlSessionFactory的Bean名称
D、
sqlSessionTemplateBeanName:指定在Spring中定义的SqlSessionTemplate的Bean名称。如果定义此属性,则sqlSessionFactoryBeanName将起作用
正确答案: D
5
【多选题】
MapperFactoryBean是MyBatis-Spring团队提供的一个用于根据Mapper接口生成Mapper对象的类,该类在Spring配置文件中可配置的参数说明错误的是()
A、
mapperInterface:用于指定接口
B、
SqlSessionFactory:用于指定SqlSessionFactory
C、
SqlSessionTemplate:用于指定SqlSessionTemplate。如果与SqlSessionFactory同时设定,则只会启用SqlSessionTemplate。
D、
以上都正确
正确答案: ABCD
6
【多选题】
在MyBatis+Spring的项目中,以下有关事务的相关说法正确的是()
A、
在MyBatis+Spring的项目中,事务是由Spring来管理的
B、
在项目中,业务层(Service层)既是处理业务的地方,又是管理数据库事务的地方
C、
进行注解开发时,需要在配置文件中配置事务管理器并开启事务注解
D、
进行注解开发时,需要使用@Transactional注解来标识事务处理的类
正确答案: ABCD
7
【多选题】
单独进行MyBatis与Spring整合时,主要需要编写的配置文件有()
A、
Spring配置文件applicationContext.xml
B、
MyBaits配置文件mybatis-config.xml
C、
日志文件log4j.properties
D、
前端Web加载配置文件web.xml
正确答案: ABC
8
【多选题】
以下哪些属于MapperScannerConfigurer类在Spring配置文件中使用时可以配置的属性()
A、
basePackage
B、
annotationClass
C、
sqlSessionFactoryBeanName
D、
mapperInterface
正确答案: ABC
9
【填空题】
可以使用mybatis-spring包中所提供的SqlSessionTemplate类或_________________类来实现向DAO实现类中注入SqlSessionFactory。
正确答案:
第一空:
SqlSessionDaoSupport
10
【填空题】
SqlSessionDaoSupport是一个抽象支持类,可以通过SqlSessionDaoSupport类的_____________方法来获取所需的SqlSession。
正确答案:
第一空:
getSqlSession()
11
【填空题】
进行MyBatis与Spring的整合时,Mybatis配置文件中需要配置Mapper文件位置以及配置_____。
正确答案:
第一空:
别名
12
【填空题】
MapperScannerConfigurer类的basePackage指定映射接口文件所在的包路径,当需要扫描多个包时可以使用____________作为分隔符。
正确答案:
第一空:
分号或逗号
13
【填空题】
由于在Spring中已经配置了数据源信息,所以在MyBatis的配置文件中就不再需要配置数据源信息。只需要使用____________、_________元素来配置文件别名以及指定Mapper文件位置即可。
正确答案:
第一空:
第二空:
14
【填空题】
通常情况下,MapperScannerConfigurer在使用时只需通过_____________属性指定需要扫描的包即可,Spring会自动的通过包中的接口来生成映射器。
正确答案:
第一空:
basePackage
15
【填空题】
采用传统DAO开发方式进行MyBatis与Spring框架的整合时,需要编写DAO接口以及接口的实现类,并且需要向DAO实现类中注入________________。
正确答案:
第一空:
SqlSessionFactory
16
【填空题】
在进行Spring与MyBatis整合时,会涉及到的JAR包有MyBaits框架包、Spring框架包、______________________________、数据库驱动包和数据源包。
正确答案:
第一空:
MyBatis与Spring整合的中间包;MyBatis与Spring整合的中间JAR
17
【填空题】
_________________是MyBatis-Spring团队提供的一个用于根据Mapper接口生成Mapper对象的类。
正确答案:
第一空:
MapperFactoryBean
18
【填空题】
MyBatis-Spring团队提供了一种自动扫描的形式来配置MyBatis中的映射器——采用_______________________类。
正确答案:
第一空:
MapperScannerConfigurer
19
【填空题】
为了满足MyBatis用户对Spring框架的需求,MyBatis社区自己开发了一个用于整合这两个框架的中间件——_____________。
正确答案:
第一空:
MyBatis-Spring
20
【判断题】
在实现MyBatis与Spring的整合时,需要编写的配置文件一般有db.properties文件、Spring的配置文件,以及MyBatis的配置文件。
正确答案:√
21
【判断题】
要实现MyBatis与Spring的整合,只需要将这两个框架的JAR包进行整合即可。
正确答案:×
22
【判断题】
在MyBatis+Spring的项目中,事务是由MyBatis来管理的。
正确答案:×
23
【判断题】
db.properties配置文件主要用于配置数据源的常量信息配置。
正确答案:√
24
【判断题】
MapperFactoryBean是MyBatis-Spring团队提供的一个用于根据Mapper接口生成Mapper对象的类。
正确答案:√
25
【判断题】
在实际的项目开发中,Spring与MyBatis都是整合在一起使用的。
正确答案:√
26
【判断题】
在实现MyBatis与Spring的整合时,涉及到数据库访问,还要根据具体的数据库类型选择对应的数据库驱动JAR包。
正确答案:√
27
【判断题】
MyBatis-Spring团队提供了一种自动扫描的的类MapperScannerConfigurer来配置MyBatis中的映射器以解决使用MapperFactoryBean时可能导致的Spring配置文件臃肿问题。
正确答案:√
28
【判断题】
通常情况下,MapperScannerConfigurer在使用时只需通过basePackage属性指定需要扫描的包即可,Spring会自动的通过包中的接口来生成映射器。
正确答案:√
29
【判断题】
MapperFactoryBean的参数SqlSessionTemplate用于指定SqlSessionTemplate。如果与SqlSessionFactory同时设定,则只会启用SqlSessionFactory。
正确答案:×
30
【判断题】
可以使用mybatis-spring包中所提供的SqlSessionTemplate类或SqlSessionDaoSupport类来实现向DAO实现类中注入SqlSessionFactory。
正确答案:√
第九章
JSON数据交互和RESTful支持(教材14章)
1
【单选题】
以下有关Jackson的开源包及说明错误的是()
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、
以上都不正确
正确答案: D
2
【单选题】
下面不属于AJAX中的属性的是()
A、
data
B、
contentType
C、
dataType
D、
datas
正确答案: D
3
【单选题】
下面属于RESTful风格请求的是()
A、
http://.../queryItems?id=1
B、
http://.../queryItems?id=1&name=zhangsan
C、
http://.../items/1
D、
http://.../queryitems/1
正确答案: C
4
【单选题】
使用@RequestMapping注解限定POST请求方法时,需要指定()
A、
method=RequestMethod.POST
B、
method=HttpMethod.POST
C、
method=POST
正确答案: A
5
【多选题】
使用JSON可以传输的数据类型有()
A、
String
B、
Boolean
C、
数组
D、
Object
正确答案: ABCD
6
【多选题】
JSON使用了哪些语言的约定()
A、
C++
B、
Perl
C、
Java
正确答案: ABC
7
【多选题】
以下有关Spring MVC中JSON相关说法正确的是()
A、
JSON是近几年才流行的一种新的数据格式,它与XML相同,都是用来存储数据的
B、
JSON(JavaScript Object Notation,JS对象标记)是一种重量级的数据交换格式
C、
与XML一样,JSON也是基于纯文本的数据格式
D、
JSON有两种数据结构:对象结构和数组结构
正确答案: CD
8
【填空题】
使用AJAX方式传递JSON格式数据时,contentType值必须为()。
正确答案:
第一空:
application/json
9
【填空题】
使用@RequestMapping注解限定GET请求方法时,需要指定method=()。
正确答案:
第一空:
RequestMethod.GET
10
【填空题】
使用标签配置方式配置JSON转换器时,需要同时配置处理器映射器和处理器适配器,并且JSON转换器是配置在()中。
正确答案:
第一空:
适配器
11
【填空题】
使用JSON可以传输一个简单的数据,也可以传输一个数组或者一个复杂的()对象。
正确答案:
第一空:
Object
12
【填空题】
使用AJAX方式将Object对象数据转换为JSON格式数据,可以使用JSON的()方法。
正确答案:
第一空:
stringify()
13
【填空题】
在jsp中获取当前项目路径可以通过EL表达式()获取。
正确答案:
第一空:
${pageContext.request.contextPath }
14
【填空题】
JSON是()的简称,是一种轻量级的数据交换格式。
正确答案:
第一空:
JavaScript ObjectNotation
15
【填空题】
JSON对象的数组结构以“[”开始,以“]”结束,中间部分由0个或多个以英文___分隔的值的列表组成。
正确答案:
第一空:
,;逗号
16
【填空题】
@PathVariable注解用于接收并绑定请求参数,它可以将请求URL中的()映射到方法的形参上。
正确答案:
第一空:
变量
17
【填空题】
RESTful风格在HTTP请求中,使用()、delete、post和get方式分别对应添加、删除、修改和查询的操作。
正确答案:
第一空:
put
18
【填空题】
RESTful风格在HTTP请求中,不能够出现()。
正确答案:
第一空:
动词
19
【填空题】
方法中的@PathVariable注解则用于接收并绑定请求参数,它可以将请求()中的变量映射到方法的形参上。
正确答案:
第一空:
URL;url
20
【填空题】
为了实现浏览器与控制器类(Controller)之间的数据交互,Spring提供了一个()接口来完成此项工作。
正确答案:
第一空:
HttpMessageConverter
21
【填空题】
RESTful风格就是把()变成请求路径的一种风格。
正确答案:
第一空:
请求参数
22
【填空题】
JSON有两种数据结构,分别为()和数组结构。
正确答案:
第一空:
对象结构
23
【填空题】
在目前国内开发,多使用()和get方式来进行增删改查操作。
正确答案:
第一空:
post
24
【填空题】
<mvc:resources …/>中有两个重要属性location和()。
正确答案:
第一空:
mapping
25
【判断题】
<mvc:resources… />元素中,mapping属性用于匹配静态资源全路径,其中“/**”表示文件夹及其子文件夹下的某个具体文件。( )
正确答案:√
26
【判断题】RESTful风格在HTTP请求中,使用put、delete、post和get方式分别对应添加、删除、修改和查询的操作。( )
正确答案:√
27
【判断题】RESTful也称之为REST,是一种软件架构标准。( )
正确答案:×
28
【判断题】在web.xml中激活tomcat的静态资源拦截,这种配置方式运行效率高。( )
正确答案:√
29
【判断题】JSON对象数据结构的关键字(key)必须为String类型,值(value)可以是String、Number、Object、Array等数据类型()( )
正确答案:√
30
【判断题】XML相对于JSON来说,解析速度更快,占用空间更小。( )
正确答案:×
31
【判断题】JSON的对象和数组两种数据结构可以分别组合构成更为复杂的数据结构。( )
正确答案:√
32
【判断题】
JSON是理想的数据交互语言,它易于阅读和编写,同时也易于机器解析和生成( )
正确答案:√
33
【判断题】
RESTful也称之为REST,是英文“Representational State Transfer”的简称( )
正确答案:√
34
【判断题】
@PathVariable(“id”)注解用于接收并绑定请求参数,如果请求路径中的参数名方法形参名称一样,则@PathVariable后面的“(“id”)”可以省略()( )
正确答案:√
35
【判断题】
@RequestBody用于将请求体中的数据绑定到方法的形参中,使用时用在方法的形参上。( )
正确答案:√