Java mybatis spring习题
作者:mmseoamin日期:2023-12-13

1、MyBatis 和 Spring 整合需要引入的 jar 包是( )。

A.spring -context

B.mybatis-spring

C.spring -jdbc

D.spring -webmvc

答案:B

解析:MyBatis 与 Spring 整合包是 mybatis -spring

2、用户通过浏览器向服务器发送请求时,负责拦截用户请求的是 ()。

A.处理器

B.处理器映射器

C.前端控制器

D.处理器适配器

答案:C

解析:处理器会返回 ModelAndView 对象;处理器映射器会生成处理器对象以及处理器拦截器(如 果有就生成) ;处理器适配器会将 ModelAndView 对象返回给 DispatcherServlet 前端控制 器;

4、下列属性中,不属于元素属性的是()。

A.property

B.select

C.ofType

D.autoMapping

答案:C

解析:无

5、下列注解中,可以与 JSON 格式转换器结合将 JSON 格式数据绑定到方法形参中的是( )。

A.@RequestBody

B.@RequestMapping

C.@RequestParam

D.@Controller

答案:A

解析:@RequestBody 注解结合 Jackson 提供的 JSON 格式转换器,即可将 JSON 格式数据绑定 到方法形参中。在添加@RequestBody 注解时,需要将@RequestBody 注解书写在方法的 形参前。

6、关于@Insert 注解的使用, 下列代码书写正确的是()。

A.Insert(“insert into tb_worker(name,age,sex,worker_id)” +“values(#{name},#{age},#{sex},#{worker_id})”) int insertWorker(Worker worker);

B.@Insert(“insert into tb_worker(name,age,sex,worker_id)” +“values(#{name} #{age} #{sex} #{worker_id})”) int insertWorker(Worker worker);

C.@Insert(“insert into tb_worker(name,age,sex,worker_id)” +“values(#{name},#{age},#{sex},#{worker_id})”) int insertWorker(Worker worker);

D.@Insert(“insert into tb_worker(name,age,sex,worker_id)” +“values({name},{age},{sex},{worker_id})”) int insertWorker(Worker worker);

答案:C

解析:无

7、下列元素中,可以为 POJO 实体类设置别名的是() 。

A.元素

B.元素

C.元素

D.元素

答案:A

解析:元素主要用于改变 MyBatis 运行时的行为,如开启二级缓存、开启延迟加载等; 元素用于引入 MyBatis 映射文件; 是一个配置属性的元素,该元素 的作用是读取外部文件的配置信息;

8、下列元素中,属于 MyBatis 配置文件的根元素的是() 。

A.元素

B.元素

C.元素

D.元素

答案:C

解析:无

9、下列关于 Spring MVC 特点说法错误的是( )。

A.灵活性强, 但不易于与其他框架集成

B.可自动绑定用户输入,并能正确的转换数据类型

C.支持国际化

D.使用基于 XML 的配置文件,在编译后,不需要重新编译应用程序

答案:A

解析:Spring MVC 灵活性强, 易扩展, 易与其他框架集成。

10、以下哪个选项不属于 Spring 的核心容器的组成模块 () 。

A.Beans 模块

B.Core 模块

C.Context 模块

D. AOP 模块

答案:D

解析:Spring 的核心容器模块包括: Beans 模块、 Core 模块、 Context 模块、SpEL 模块。

12、下列关于 MyBatis 中默认的常见 Java 类型的别名, 正确的是() 。

A.映射类型为 byte,则别名为 Byte

B.映射类型为 Byte,则别名为 Byte

C.映射类型为 String,则别名为 string

D.映射类型为 Date,则别名为 Date

答案:C

解析:A 选项的别名为_byte;B 选项的别名为 byte;D 选项的别名为 date;

14、下列选项中,关于 Spring 注解的描述错误的是 ( )。

A.@Autowired 指定要自动装配的对象

B.@Repository 指定要自动装配的对象名称

C.@Service 指定一个业务逻辑组件 Bean

D.@Controller 指定一个控制器组件 Bean

答案:B

解析:@Repository 指定一个数据访问组件 Bean,用于将数据访问层的类标识为 Spring 中的 Bean,功能上等同于 @Component

15、下列选项中,哪个是 Spring MVC 的后端控制器 ()。

A.HandlerMapping

B.HandlerAdapter

C.DispatcherServlet

D.Handler

答案:D

解析:HandlerMapping 是处理器映射器; HandlerAdapter 是处理器适配器; DispatcherServlet 是 前端控制器;

16、关于 Spring MVC 支持的 RESTful 风格描述错误的是( )。

A.RESTful 不是架构, 只是另一种风格请求的 URL

B.RESTful 风格在 HTTP 请求中, 通过 GET 、POST 、PUT 和 DELETE 4 个动词对应四种基 本请求操作

C.RESTful 风格也是一种规范,不可以打破

D.使用 RESTful 风格书写的路径,可以隐藏资源的访问行为。

答案:C

解析:RESTful 风格中对 HTTP 四种请求的动词是一种约定方式, 约定不是规范,约定是可以打破, 所以称为 RESTful 风格, 而不是 RESTful 规范。

17、Spring 容器中用于监控 Bean 对象销毁节点的注解是( )。

A.@PostConstruct

B.@PreDestroy

C.@GetConstruct

D.@Destroy

答案:B

解析:Spring 容器提供了@PostConstruct 用于监控 Bean 对象初始化节点, 提供了@PreDestroy 用 于监控 Bean 对象销毁节点。

19、下列选项, 对 POJO 类型数据绑定的描述错误的是( )。

A.将关联的请求参数封装在一个 POJO 中

B.在方法中直接使用该 POJO 作为形参完成数据绑定

C.客户端请求的参数名称不需要与要绑定的 POJO 类型中的属性名称一致

D.客户端请求的参数名称必须与要绑定的 POJO 类型中的属性名称保持一致

答案:C

解析:在进行 POJO 类型数据绑定时, 客户端请求的参数名称必须与要绑定的 POJO 类型中的属 性名称保持一致。这样客户端发送请求时,请求数据才会自动绑定到处理器形参 POJO 对 象中, 否则处理器参数接收的值为 null。

20、下面关于 MyBatis 框架的说法,正确的是()。

A.MyBatis 是一个半自动映射的框架, 这里所谓的“半自动”是相对于 Hibernate 全表映射而言 的

B.MyBatis 是一个业务逻辑层的框架

C.MyBatis 的封装性要比 Hibernate 高

D.MyBatis 是一个全表映射的框架

答案:A

解析:MyBatis 本是 Apache 的一 个开源 项 目 iBatis , 2010 年 这 个项目 由 Apache Software Foundation 迁移到了 Google Code,并且改名为 MyBatis ,2013 年 11 月 MyBatis 又被迁移 到 Github。MyBatis 是一个优秀的持久层框架,它可以在实体类和SQL 语句之间建立映射关 系, 是一种半自动化的 ORM (Object/Relation Mapping ,即对象关系映射) 实现。 MyBatis 封装性要低于 Hibernate ,但它性能优越、简单易学,在互联网应用的开发中被广泛使用。

21、下列选项中,不属于 Spring 配置文件中的配置信息的是( )。

A.事务管理器的配置信息

B.开启事务注解的配置

C.Spring MVC 前端控制器的配置

D.扫描 Service 层的配置

答案:C

解析:在 web.xml 中配置 Spring MVC 的前端控制器, 并在初始化前端控制器时加载 Spring MVC 的配置文件。

22、Spring 的核心容器模块中提供了 Spring 框架的基本组成部分, 包括 IoC 和 DI 功能的模块是 ( )。

A.Beans

B.Core

C.Context

D.SpEL

答案:B

解析:Core 模块提供了Spring 框架的基本组成部分, 包括 IoC 和 DI 功能。

23、下面关于 Java 对象之间的关联关系描述正确的是 ()。

A.一对一的关系就是在本类和对方类中定义同一个类型的对象

B.一对多的关系: 就是一个 A 类类型对应多个 B 类类型的情况

C.多对多的关系只需要在一方的类中引入另一方类型的集合

D.多对多关联关系需要在本类中引入本类的集合

答案:B

解析:A 选项: 一对一关系就是在本类中定义与之关联的类的对象作为属性; C 、D 选项: 多对多 关系就是在两个相互关联的类中,都可以定义多个与之关联的类的对象;

24、在数据表 employee 中根据 id 删除员工信息, 下列@Delete 注解的写法正确的是() 。

A.@Delete(“delete from employee where id = ?”)

B.@Delete(“delete from employee”)

C.@Delete(“delete from employee where id = #{id}”)

D.以上说法都不正确

答案:C

解析:无

26、关于使用元素迭代 List ,下列代码片段书写正确的是() 。

A.#{id}

B. #{id}

C.#{id}

D.#{id}

答案:B

解析:无

27、要求根据员工的 id 查找员工信息,下列使用@Select 注解的代码书写正确的是() 。

A.@Select(“select * from tb_worker where id = ?”)

B.@Select(“select * from tb_worker where id = #id”)

C.@Select(“select * from tb_worker where id = {id}”)

D.@Select(“select * from tb_worker where id = #{id}”)

答案:D

解析:#{}是 MyBatis 提供的支持动态 SQL 的语法。

28、下列选项中,对于Spring 整合 Mybatis 时需要设置的配置信息中错误的是 ( )。

A.配置数据源

B.引入数据库连接信息的文件

C.创建 SqlSessionFactory 对象

D.扫描 service 包

答案:D

解析:扫描 service 包是 Spring 中的配置,Spring 整合 MyBatis 需要配置的是扫描 Dao 包, 创建动 态代理对象。

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

A.AOP 的全称是 Aspect -Oriented Programming,即面向切面编程

B.AOP 采取横向隔离机制, 将分散在各个方法中的重复代码提取出来,这种采用横向隔离机 制的方式, 采用 OOP 思想是无法办到的

C.虽然 AOP 是一种新的编程思想, 采取横向抽取机制,是 OOP 的升级替代品

D.AOP 的使用不仅提高了开发效率,而且增强了代码的可维护性

答案:C

解析:AOP 是一种新的编程思想,但却不是 OOP 的替代品,它只是 OOP 的延伸和补充。

30、Spring 容器支持多种形式的 Bean 的装配方式 ,错误的是() 。

A.基于 XML 的装配

B.基于 properties 的装配

C.基于注解的装配

D.自动装配

答案:B

解析:Bean 的装配方式包括: 基于 XML 的装配,基于注解的装配,自动装配。

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

A.prototype

B.request

C.session

D.Singleton

答案:D

解析:singleton 是 Spring 容器默认的作用域,当 Bean 的作用域为 singleton 时, Spring 容器只为 Bean 创建一个实例,该实例可以重复使用。

33、在 Java 中,以下有关类的关联关系描述错误的是()。

A.在 Java 中,通过对象也可以进行关系描述,他们分别为一对一、一对多、多对一和多对多

B.一对一的关系就是在本类中定义对方类型的对象

C.一对多的关系就是一个 A 类类型对应多个 B 类类型的情况,需要在 A 类中以集合的方式引 入 B 类类型的对象, 在 B 类中定义 A 类类型的属性a

D.多对多的关系: 在 A 类中定义 B 类类型的集合,在 B 类中定义 A 类类型的集合。

答案:A

解析:没有多对一关系。

34、Spring 容器中用于监控 Bean 对象初始化节点的注解是( )。

A.@PostConstruct

B.@PreDestroy

C.@GetConstruct

D.@Destroy

答案:A

解析:Spring 容器提供了@PostConstruct 用于监控 Bean 对象初始化节点, 提供了@PreDestroy 用 于监控 Bean 对象销毁节点。

36、下列属性中,不属于元素的是()。

A.flushInterval

B.readOnly

C.select

D.size

答案:C

解析:无

37、下列选项中,对 DispatcherServlet 说法错误的是( )。

A.DispatcherServlet 是 Spring MVC 的流程控制中心, 也称为 Spring MVC 的前端控制器

B.DispatcherServlet 的本质是一个过滤器

C.DispatcherServlet 拦截客户端的请求后会将请求转发到 Spring MVC 的其他组件

D.DispatcherServlet 降低了 Spring MVC 组件之间的耦合性

答案:B

解析:DispatcherServlet 的本质是一个 Servlet,可以在项目的 web.xml 文件中完成 DispatcherServlet 的配置和映射。

38、 关于以上代码段,下列选项中描述错误的是( )。

A.元素实例化实体类

B.元素中的class 属性指定待实例化的相对路径类名

C.元素为实体类中的属性赋值

D.元素中的 name 属性指定参数

答案:B

解析: 元 素实例化实体类 元 素中的 class 属性指定待实例化 的全路径类 名 元素为实体类中的属性赋值 元素中的 name 属性指定 参数

41、下列选项, 关于文件上传表单说法错误的是 ( )。

A.form 表单的 method 属性设置为 post

B.form 表单的 method 属性设置为 get

C.form 表单的 enctype 属性设置为 multipart/form -data

D.提供的文件上传输入框

答案:B

解析:form 表单的 method 属性设置为 post,所以 B 项错误。

45、下列有关 Spring 框架的描述,错误的是( )。

A.Spring 是一个提供了一站式服务的框架

B.Spring 是轻量级框架

C.Spring 是开源框架

D.Spring 是持久层框架

答案:D

解析:无

46、下列选项中,对于 RequestMapping 注解的作用说法正确的是( )。

A.用于映射一个请求或一个方法

B.用于映射一个控制器类

C.用于映射请求参数

D.用于映射请求类型

答案:A

解析:无

48、下列选项中,正确使用元素定义一个包含 uid 、uname 和 uage 字段的代码片段的是 () 。

A. a l i a s . u i d , {alias}.uid, alias.uid,{alias}.uname, a l i a s . u a g e < / s q l > B . < s q l i d = " u s e r C o l u m n s " > a l i a s . u i d , a l i a s . u n a m e , a l i a s . u a g e < / s q l > C . < s q l > {alias}.uage B.alias.uid,alias.uname,alias.uage C. alias.uageB.alias.uid,alias.uname,alias.uageC.{alias}.uid, a l i a s . u n a m e , {alias}.uname, alias.uname,{alias}.uage

D. a l i a s . u i d ; {alias}.uid; alias.uid;{alias}.uname;${alias}.uage

答案:A

解析:无

49、下面关于映射文件中的元素的属性,说法正确的是() 。

A.parameterType 属性的值表示的是返回的实体类对象

B.namespace 属性的值通常设置为对应实体类的全限定类名

C.resultType 属性的值表示传入的参数类型

D.以上说法都不正确

答案:B

解析:parameterType 属性的值表示传入的参数类型,resultType 属性的值表示的是返回实体类对 象,使用包.类名

50、下列关于元素的描述正确的是()。

A.MyBatis 就是通过元素来处理一对多关联关系的

B.元素的属性与元素完全相同

C.ofType 属性与 javaType 属性对应,它用于指定实体对象中所有属性所包含的元素类型

D.元素只能使用嵌套查询方式

答案:A

解析:元素的属性大部分与元素相同,但其还包含一个特殊属性 ofType。 ofType 属性与 javaType 属性对应,它用于指定实体类对象中集合类属性所包含的元素的类 型。 元素也是元素的子元素,它也有嵌套查询和嵌套结果两种配置 方式。

52、下列属性中,不属于@Results 注解的是() 。

A.column

B.property

C.size

D.one

答案:C

解析:无

54、以下关于元素中常用属性说法错误的是()。

A.property 指定映射到的实体类对象属性, 与表字段一一对应

B.column 指定表中对应的字段

C.fetchType 指定在关联查询时是否启用延迟加载,默认值为eager

D.javaType 指定映射到实体对象属性的类型

答案:C

解析:fetchType 属性有 lazy 和 eager 两个属性值, 默认值为 lazy (即默认关联映射延迟加载)。

55、下列关于 Spring MVC 常用的默认参数类型及说法错误的是( )。

A.HttpServletRequest 通过 request 对象获取请求信息

B.HttpServletResponse 通过 response 处理响应信息

C.HttpSession 通过 session 对象得到 session 中存放的对象

D.Model 或 ModelMap 是一个接口,作用是将 model 数据填充到 request 域。

答案:D

解析:Model 是一个接口, ModelMap 是一个类 Model 的实现类对象和 ModelMap 对 象都可以 设置 model 数据, model 数据会填充到 request 域。

56、下列选项中,关于@RequestMapping 注解说法错误的是( )。

A.@RequestMapping 注解的默认属性是 value

B.@RequestMapping 注解可以标注在类上和方法上

C.name 属性用于映射地址指定别名

D.@RequestMapping 注解的 value 属性必须标注

答案:D

解析:当 value 属性是@RequestMapping 注解显式使用的唯一属性时,可以省略 value 的属性名。

57、下列选项, 关于简单异常处理器的说法错误的是( )。

A.对 Spring MVC 中的所有异常进行统一处理,可以使用异常处理器 HandlerExceptionResolver 实现

B.SimpleMappingExceptionResolver 是 HandlerExceptionResolver 的继承类

C.SimpleMappingExceptionResolver 实现了简单的异常处理

D.SimpleMappingExceptionResolver 可以将不同类型的异常映射到不同的页面

答案:B

解析:HandlerExceptionResolver 是一个接口,为了方便直接对异常进行统一处理, Spring MVC 内 部提供了 HandlerExceptionResolver 的实现类 SimpleMappingExceptionResolver。

58、在 ApplicationContext 接口实现类中从类路径加载配置文件,实例化 ApplicationContext 接口 的类方法是( )。

A.WebApplicationContext

B.AnnotationConfigApplicationContext

C.ClassPathXmlApplicationContext

D.FileSystemXmlApplicationContext

答案:C

解析:WebApplicationContext:在 Web 应用中使用,从相对于 Web 根目录的路径中加载配置文件, 实例化 ApplicationContext 接口 AnnotationConfigApplicationContext:从注解中加载配置文 件,实例化 ApplicationContext 接口 ClassPathXmlApplicationContext:从类路径加载配置文 件,实例化 ApplicationContext 接口 FileSystemXmlApplicationContext:从文件系统加载配置 文件,实例化 ApplicationContext 接口

59、下列注解中,可以实现一对一关联查询的是() 。

A.@Select

B.@Result

C.@One

D.@Many

答案:C

解析:MyBatis 中@Results 注解可以用在三种关联查询方式中, 其中@Result 注解是@results 的子 元素; @One 可以实现一对一关联查询; @Many 可以实现一对多关联查询;

60、下列选项, 对 web.xml 配置文件中的可配置项描述错误的是( )。

A.使用元素加载 Spring 配置文件 application-service.xml 和 Spring 整合 Mybatis 的配置文件 application-dao.xml

B.Spring 容器加载监听器

C.配置 Spring MVC 的前端控制器

D.配置 Spring MVC 扫描的包路径和注解驱动

答案:D

解析:Spring MVC 扫描的包路径和注解驱动是在 spring -mvc.xml 配置文件中配置的。所以 D 项错 误。

61、以下关于元素及其属性说法错误的是()。

A.元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业 务开发人员

B.parameterType 属性表示传入 SQL 语句的参数类的全限定名或者别名

C.resultMap 表示外部 resultMap 的命名引用, 返回时可以同时使用 resultType 和

D.resultMap 在同一个映射文件中可以配置多个元素

答案:C

解析:返回时可以使用 resultType 或 resultMap 之一

64、下列选项,不是 HandlerInterceptor 接口中的方法的是( )。

A.preHandler()

B.postHandle()

C.afterCompletion()

D.handler()

答案:D

解析:通过实现 HandlerInterceptor 接口自定义的拦截器, 需要重写接口中的三个方法,分别是 preHandler() 、postHandle() 、afterCompletion()。

65、下面关于 MyBatis 提供的用于解决 JDBC 编程劣势的方案,说法错误的是()。

A.在 SqlMapConfig.xml 中配置数据链接池, 使用连接池管理数据库链接

B.MyBatis 将 SQL 语句配置在 MyBatis 的映射文件中,未与 Java 代码的分离

C.MyBatis 自动将 Java 对象映射至 SQL 语句, 通过 Statement 中的 parameterType 定义输入 参数的类型

D.MyBatis 自动将 SQL 执行结果映射至 Java 对象, 通过 Statement 中的 resultType 定义输出结 果的类型

答案:B

解析:MyBatis 将 SQL 语句配置在 MyBatis 的映射文件中,实现了与 Java 代码的分离。

67、以下有关元素说法错误的是()。

A.是一个配置属性的元素,该元素的作用是读取外部文件的配置信息

B.使用元素配置数据库驱动、连接数据库的 URL、连接数据库的用户名和连接 数据库的密码等数据库连接参数

C.元素可以通过 db.properties 文件实现静态参数配置

D.以上说法都正确

答案:C

解析:元素可以通过 db.properties 文件实现动态参数配置

70、下列选项中对 Ant 风格的通配符的说法错误的是()

A.?可以匹配任何单字符。

B.可以匹配 0 或者任意数量的字符。

C.//ant3 可以匹配到路径/findAll/a/ant3

D.**:匹配 0 或者多级目录。

答案:C

解析:匹配项目根路径下/[onemore]/ant3 路径, 其中[onemore]可以是数量多于 0 个的任意字符。 如/a/ant3 、/findAll/ant3,但是字符数量不能为 0 个,并且目录层数必须一致,如//ant3 、 /findAll/a/ant3

72、在@PathVariable 注解中, 用于指定 URL 中占位符名称的是( )。

A.defaultValue

B.value

C.name

D.required

答案:B

解析:@PathVariable 注解有以下两个常用属性。: value:用于指定 URL 中占位符名称。

required:是否必须提供占位符, 默认值为 true。

73、下列关于元素的 collection 属性的说法正确的是()。

A.collection 属性可有可无

B.collection 属性值在任何情况下的取值都是一样的

C.collection 属性值首字母要小写

D.collection 属性值首字母要大写

答案:C

解析:无

74、当 Spring MVC 方法的返回值为void 类型,方法执行后会跳转到默认的页面。默认页面的路 径拼接格式是( )。

A.前缀+方法映射路径

B.方法映射路径+后缀

C.前缀+方法映射路径+后缀

D.方法映射路径

答案:C

解析:页面的路径默认由方法 映射路径和视图解析器中的前缀、后缀拼接成,拼接格式为“前缀+ 方法映射路径+后缀”。

76、下列关于元素中的属性说法正确的是()。

A.item 属性表示迭代集合的名称

B.index 表示 foreach 语句代码的开始符号

C.item 属性为必选

D.遍历 Map 时, index 属性是元素的value。

答案:C

解析:无

77、下列选项中,RESTful 风格在 HTTP 请求中的约定说法错误的是( )。

A.通过 GET 、POST 、PUT 和 DELETE 4 个动词对应四种基本请求操作

B.GET 用于获取资源

C.POST 用于新建资源

D.PUT 用于删除资源

答案:D

解析:RESTful 风格在 HTTP 请求中, 通过 GET 、POST 、PUT 和 DELETE 4 个动词对应四种基本请 求操作,其中, GET 用于获取资源, POST 用于新建资源, PUT 用于更新资源,DELETE 用于 删除资源。

80、以下有关 Bean 的 prototype 作用域说法错误的是()。

A.prototype 是 Spring 容器默认的作用域

B.在使用 prototype 作用域时, Spring 容器只负责创建 Bean 实例而不再管理其生命周期

C.在使用 prototype 作用域时, Spring 容器会为每个对该 Bean 的请求都创建一个新的实例

D.要将 Bean 定义为 prototype 作用域,只需在配置文件中将元素的scope 属性值设置 为 prototype 即可

答案:A

解析:singleton 是 Spring 容器默认的作用域。prototype 作用域的 Bean,每次对 Bean 请求时都会 创建一个新的 Bean 实例,Spring 容器只负责创建 Bean 实例而不再管理其生命周期。 scope 属性用于设定 Bean 实例的作用范围,其属性值有: singleton (单例) 、prototype (原型)、 request 、session 和 global session。

82、以下有关元素说法错误的是()。

A.元素的作用就是定义可重用的SQL 代码片段,然后在其他语句中引用这一代码片段

B.使用元素的 refid 属性可以引用自定义的代码片段

C.使用元素 refid 的属性值为自定义代码片段的 name

D.元素是元素的子元素

答案:C

解析:使用元素 refid 的属性值为自定义代码片段的 id。

86、下列选项中,用于通知/增强处理的是( )。

A.Joinpoint

B.Pointcut

C.Aspect

D、Advice

答案:D

解析:通知/增强处理就是插入的切面程序代码。可以将通知/增强处理理解为切面中的方法,它是 切面的具体实现。

87、Spring 的常用注解中,用于指定要自动装配的对象的注解是( )。

A.@Autowired

B.@Repository

C.@Service

D.@Controller

答案:A

解析:@Controller 指定一个控制器组件 Bean,用于将控制层的类标识为 Spring 中的 Bean 。@Service 指定一个业务逻辑组件 Bean,用于将业务逻辑层的类标识为 Spring 中的 Bean 。 @Repository 指定一个数据访问组件 Bean,用于将数据访问层的类标识为 Spring 中的 Bean。 @Autowired 指定要自动装配的对象。

89、在 Spring 的配置文件中, 配置切面使用的元素是( )。

A.aop:config

B.aop:aspect

C.aop:advisor

D.aop:pointcut

答案:B

解析:aop:config :Spring AOP 配置的根元素 aop:aspect:配置切面 aop:advisor:配置 通知器 aop:pointcut:配置切点

90、下列选项中关于 Spring 框架优点的描述错误的是( )。

A.提供强大的、可以有效减少页面代码的标签

B.声明式事务的支持

C.方便解耦、简化开发

D.方便集成各种优秀框架

答案:A

解析:Spring 框架具有的几个优点如下: 1.非侵入式设计 2.降低耦合性, 方便开发 3.支持 AOP 编 程 4.支持声明式事务 5.方便程序的测试 6. 方便集成各种优秀框架 7.降低 Java EE API 的使 用难度

91、下列关于 Spring MVC 的执行流程,说法错误的是()。

A.用户通过浏览器向服务器发送请求, 该请求会被 DispatcherServlet 前端控制器拦截

B.处理器映射器会生成处理器对象以及处理器拦截器返回给 DispatcherServlet 前端控制器

C.处理器适配器会调用并执行 Controller 类中的代码

D.Controller 类中的代码执行完成后,会返回 ModelAndView 对象, 该对象中只包含视图名

答案:D

解析:ModelAndView 对象中, 会包含视图名或者包含模型和视图名。

93、下列选项中,用于配置切点的注解是 ( )。

A.@Aspect

B.@Pointcut

C.@Before

D.@Around

答案:B

解析:@Aspect:配置切面 @Pointcut:配置切点 @Before:配置前置通知 @Around:配置环绕 方式

100、下列选项中,使用@Select 和@Param编写代码正确的是() 。

A.@Select(“select * from tb_worker where id = #{param01}”) Worker selectWorkerByIdAndName(@Param(“param01”) int id);

B.@Select(“select * from tb_worker where id = #{param}”) Worker selectWorkerByIdAndName(@Param(“param01”) int id);

C.@Select(“select * from tb_worker where id = {param01}”) Worker selectWorkerByIdAndName(@Param(“param01”) int id);

D.@Select(“select * from tb_worker where id = param01”) Worker selectWorkerByIdAndName(@Param(“param01”) int id);

答案:A

解析:无

101、以下有关依赖注入说法错误的是()。

A.依赖注入(DI) 与控制反转(IoC) 的含义不同, 描述不同的概念

B.在传统模式下, 调用者通常会采用“new 被调用者”的代码方式来创建对象, 这种方式会导致 调用者与被调用者之间的耦合性增加,不利于后期项目的升级和维护

C.在使用 Spring 框架之后, 控制权由应用代码转移到了 Spring 容器, 控制权发生了反转, 这 就是 Spring 的控制反转

D.从 Spring 容器的角度来看,Spring 容器负责将被依赖对象赋值给调用者的成员变量,相当 于为调用者注入了依赖的实例, 这就是 Spring 的依赖注入

答案:A

解析:依赖注入(DI)和控制反转(IoC)是从不同角度来描述了同一件事情。依赖注入是从应用 程序的角度描述,即应用程序依赖 IoC 容器创建并注入它所需要的外部资源;而控制反转是 从 IoC 容器的角度描述, 即 IoC 容器控制应用程序,由 IoC 容器反向地向应用程序注入应用 程序所需要的外部资源。

102、下列注解中,可以返回 JSON 数据的是( )。

A.@RequestMapping

B.@RequestParam

C.@ResponseBody

D.@PathVariable

答案:C

解析:使用@RequestMapping 可以规定请求映射的 URL 路径;使用@RequestParam 注解可以定

义参数的别名; 使用@ResponseBody 注解可以返回JSON 数据; 使用@PathVariable 注解可 以进行简单类型数据绑定。

103、下列 AOP 专业术语中,用于表示切面与连接点的交叉点的是( )。

A.Joinpoint

B.Pointcut

C.Aspect

D.Advice

答案:B

解析:当某个连接点满足预先指定的条件时, AOP 就能够定位到这个连接点,在连接点处插入切 面,该连接点也就变成了切入点。

104、下列关于 Spring MVC 数据绑定流程说法错误的是()。

A.Spring MVC 将 ServletRequest 对象传递给 DataBinder

B.Spring 会将处理方法的入参对象传递给 DataBinder

C.DataBinder 调用 BindingResult 组件进行数据类型转换、数据格式化等工作

D.调用 Validator 组件对已经绑定了请求消息数据的参数对象进行数据合法性校验

答案:C

解析:DataBinder 调用的是 ConversionService 组件进行数据类型转换、数据格式化等工作。

106、下列选项, 用于指定扫描包或者扫描路径的注解是( )。

A.@PropertySource

B.@ComponentScan

C.@Value

D.@EnableWebMvc

答案:B

解析:@PropertySource:读取 properties 文件 @ComponentScan:指定扫描包或路径 @Value: 读取 properties 文件中的属性值 @EnableWebMvc:用于启用 Spring MVC 的基于 Java config 的配置

107、下列选项中,关于 MyBatis 的配置说法正确的是()

A.Mapper.xml 核心配置文件主要配置了 MyBatis 的运行环境等信息。

B.mybatis-config.xml 中配置了操作数据库的 SQL 语句。

C.通过 MyBatis 的环境等配置信息可以直接构建会话工厂SqlSession。

D.MyBatis 可以加载多个映射文件, 每个映射文件对应数据库中的一张表。

答案:D

解析:1.mybatis -config.xml 核 心 配 置 文 件 主 要 配 置 了MyBatis 的 运 行 环 境 等 信 息 。 2.Mapper.xml 文件配置了操作数据库的 SQL 语句, 需要在 mybatis -config.xml 中加载才 能执行。mybatis -config.xml 可以加载多个映射文件,每个映射文件对应数据库中的一张表。 3.通过 MyBatis 的环境等配置信息构建会话工厂 SqlSessionFactory,用于创建 SqlSession。

108、下列选项中,用于配置异常通知的注解是( )。

A.@After

B.@Around

C.@AfterReturning

D.@AfterThrowing

答案:D

解析:@After : 配 置 后 置 通 知 @Around : 配 置 环 绕 方 式 @AfterReturning : 配 置 返 回 通 知 @AfterThrowing:配置异常通知

112、有关 MyBatis 工作原理说法错误的是()。

A.MyBatis 的全局配置文件配置了 MyBatis 的运行环境等信息,其中主要内容是获取数据库连 接

B.MyBatis 映射文件中配置了操作数据库的SQL 语句,需要在 MyBatis 的全局配置文件中加载 才能执行

C.可以通过 MyBatis 的环境等配置信息构建会话对象 SqlSession

D.SqlSession 对象,该对象中包含了执行 SQL 的所有方法

答案:C

解析:通过 MyBatis 的环境等配置信息构建的是会话工厂 SqlSessionFactory

114、假设有一个名称为 UserMapper 的 XML 文件, 下列关于使用类路径引入映射文件的示例代 码正确的是()。

A.

B.

C.

D.以上说法都不正确

答案:A

解析:无

115、使用 Maven 的 Tomcat 插件运行 Maven Web 项目时,仍然需要将项目部署到本地 Tomcat 中。

答案:错

解析:配置该插件后,可以通过 Maven 指令运行 Maven Web 项目,而无需将项目部署到本地 Tomcat 中。

116、Spring MVC 是一个 Web 框架, 它基于 Servlet API 属于 Spring 中的一个模块,正式名称是 Spring Web MVC,但它通常被称为 Spring MVC。

答案:对

解析:无

117、与元素一样,和元素在执行完之后,也会返回一个表示影响记录 条数的整数。

答案:对

解析:无

118、在 MyBatis 中, 通过元素可以处理一对多关联关系。

答案:错

解析:处理的是一对一关联关系。

119、DispatcherServlet 是 Spring MVC 的流程控制中心,也称为 Spring MVC 的前端控制器,它 可以拦截客户端的请求。

答案:对

解析:无

122、在 IDEA 中使用插件运行 Maven 项目时, 除了需要在 pom.xml 文件中配置对应的插件外, 还需要在 IDEA 中进行项目运行的相关配置。

答案:对

解析:无

123、在运行程序时, 拦截器的执行是有一定顺序的,该顺序与配置文件中所定义的拦截器的顺序 相关。

答案:对

解析:无

124、

在@Insert 注解中,value 属性是可选的。

答案:错

解析:value 属性用于指定要执行的 insert 语句,是必须指定的。

125、元素只有一种配置方式,即嵌套结果方式。

答案:错

解析:元素的使用非常简单, 它有两种配置方式, 嵌套查询方式和嵌套结果方式。

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

答案:对

解析:无

129、在数据库中,表与表之间的多对多关联关系通常使用一个中间表来维护。

答案:对

解析:无

130、使用注解整合 SSM 框架,其实就是使用配置类替代原来 XML 配置文件在项目的作用。

答案:对

解析:无

131、在项目的 pom.xml 文件中,引入依赖 jar 时,只能有一对 元素, 可以有若干对元素。

答案:对

解析:无

132、Ant 风格其实就是一种通配符风格, 可以在处理器映射路径中使用通配符对访问的 URL 路 径进行关联。

答案:对

解析:无

133、AOP 的全称是 Aspect -Oriented Programming ,即面向切面编程。

答案:对

解析:无

135、在使用 Spring 开发时, 除了要使用自带的 jar 包外, Spring 的核心容器还需要依赖 commons.logging 的 jar 包。

答案:对

解析:无

136、拦截器(Interceptor)是一种动态拦截 Controller 方法调用的对象,它可以在指定的方法调 用前或者调用后,执行预先设定的代码。

答案:对

解析:无

137、Spring 的元素中包含一个 autowire 属性,可以通过设置 autowire 属性的值实现 Bean 的自动装配。

答案:对

解析:无

138、基于注解的装配可以较大程度上解决基于 XML 方式装配导致的配置文件臃肿和难以维护等 问题。

答案:对

解析:在 Spring 中,使用 XML 配置文件可以实现 Bean 的装配工作,但在实际开发中如果 Bean 的 数量较多, 会导致 XML 配置文件过于臃肿,给后期维护和升级带来一定的困难。为解决此 问题, Spring 提供了注解,通过注解也可以实现 Bean 的装配。

139、MyBatis 中, @Update 注解用于映射更新语句,其作用等同于 XML 配置文件中的 元素。

答案:对

解析:无

140、Spring MVC 请求参数的绑定是由框架自动实现的, 根据请求参数类型和参数个数等数据信 息的复杂程度, 可以将 Spring MVC 中的数据绑定分为两类。

答案:对

解析:无

141、在 SSM 框架整合过程中,Spring 与 Spring MVC ,Spring MVC 与 MyBatis 需要相互整合。

答案:错

解析:在 SSM 框架的整合过程中,Spring MVC 和 MyBatis 没有直接交集,所以只需将 Spring 分别 与 MyBatis 及 Spring MVC 整合, 就可以完成 SSM 框架的整合。

142、在 AOP 专业术语中, 切面是指要对哪些 Joinpoint 进行拦截。

答案:错

解析:切面是指关注点形成的类(关注点是指类中重复的代码) ,通常是指封装的、用于横向插入 系统的功能类(如事务管理、日志记录等) 。

143、如果对 Spring MVC 中所有异常进行统一处理,可以使用 Spring MVC 提供的异常处理器 HandlerExceptionResolver。

答案:对

解析:无

144、在@PathVariable 注解中, required 属性表示是否必须提供占位符, 它的默认值为 true。

答案:对

解析:无

145、MyBatis 中,核心配置文件中的内容的扫描方式是从上到下扫描。

答案:对

解析:无

147、元素的子元素内容为“/”,表示项目在运行时,Spring MVC 的前端控制器会拦截所有的请求 URL,并交由 DispatcherServlet 处理。

答案:对

解析:无

148、SqlSession 对象是应用程序与持久层之间执行交互操作的一个单线程对象,主要作用是执行 持久化操作。

答案:对

解析:无

149、在复杂 POJO 数据绑定时,如果数据需要绑定到 POJO 属性对象的属性中,客户端请求的参 数名格式必须为“属性对象名称.属性”。

答案:对

解析:无

150、在 Mybatis 中, 使用元素为实体类设置别名是区分大小写的。

答案:错

解析:不区分大小写。

151、在 Spring MVC 中, 如果想显式地配置处理器映射器和处理器适配器,可以在配置文件中使 用mvc:annotation-driven元素来实现。

答案:对

解析:无

152、依赖注入(DI) 与控制反转(IoC) 的含义不同, 描述的不是同一个概念。

答案:错

解析:依赖注入(DI)和控制反转(IoC)是从不同角度来描述了同一件事情。依赖注入是从应用 程序的角度描述,即应用程序依赖 IoC 容器创建并注入它所需要的外部资源;而控制反转是 从 IoC 容器的角度描述, 即 IoC 容器控制应用程序,由 IoC 容器反向地向应用程序注入应用 程序所需要的外部资源。

153、MyBatis 中,除了 XML 的映射方式, MyBatis 还支持通过注解实现 POJO 对象和数据表之间 的关系映射。

答案:对

解析:MyBatis 中有 XML 开发和注解开发两种开发方式。

154、Spring 容器支持 XML 和 Properties 两种格式的配置文件, 在实际开发中,最常使用的就是 Properties 格式的配置方式。

答案:错

解析:Spring 容器支持 XML 和 Properties 两种格式的配置文件, 在实际开发中,最常用的是 XML 格式的配置文件。

155、MyBatis 框架可以在实体类和SQL 语句之间建立映射关系, 是一种半自动化的 ORM 实现。

答案:对

解析:无

156、如果 Spring MVC 的配置文件中没有视图解析器,则不会进行请求转发。

答案:错

解析:如果 Spring MVC 的配置文件中没有视图解析器,处理器执行后,会将请求转发到与方法 返回值一致的映射路径。

157、元素的 parameterType 属性是一个可选属性,默认值为 unset。

答案:对

解析:无

158、注 解 方 式 的 类 型 转 换 依 赖 注 解 驱 动 的 支 持 , 所 以 在 配 置 文 件 中 必 须 显 式 定 义 mvc:annotation-driven元素。

答案:对

解析:无

159、Java 对象关联映射关系中,一对一就是在本类中定义与之关联的类的对象作为属性。

答案:对

解析:无

160、当程序中配置了多个拦截器时, 拦截器中的 postHandle()方法和 afterCompletion()方法按照 拦截器的配置顺序执行。

答案:错

解析:拦截器中的 postHandle()方法和 afterCompletion()方法按照与拦截器的配置顺序相反的顺序 执行。

161、在项目的 web.xml 中元素和元素都是可选的。

答案:对

解析:无

162、Spring MVC 可以通过前端控制器拦截客户端的请求并进行转发, 因此在使用 Spring MVC 时,配置前端控制器是必不可少的一步。

答案:对

解析:无

164、软件框架是一种通用的、可复用的软件环境, 它提供特定的功能, 促进软件应用、产品和解 决方案的开发工作

答案:对

解析:无

165、当程序对数据库执行了插入、更新、删除操作后, MyBatis 会清空一级缓存中的内容, 以防 止程序误读。

答案:对

解析:无

166、的作用是开启注解扫描。

答案:对

解析:无

168、Spring 提供了3 种基于 XML 的装配方式: 设值注入、属性 setter 方法注入和构造方法注入。

答案:错

解析:基于 XML 的装配就是读取 XML 配置文件中的信息完成依赖注入,Spring 容器提供了两种基

于 XML 的装配方式,属性 setter 方法注入和构造方法注入。

169、RESTful 风格中对 HTTP 四种请求的动词使用是一种约定, 不可以打破, 必须遵循。

答案:错

解析:RESTful 风格中对 HTTP 四种请求的动词是一种约定方式, 约定不是规范,约定是可以打破, 所以称为 RESTful 风格, 而不是 RESTful 规范。

170、Spring AOP 允许使用基于注解的方式实现 AOP。

答案:对

解析:基于 XML 的 AOP 实现需要在Spring 文件中配置大量的代码信息,不利于代码阅读与维护。 为了解决此问题,Spring AOP 允许使用基于注解的方式实现 AOP,这样做可以简化 Spring 配置文件中的臃肿代码。

171、Mapper.xml 文件配置了操作数据库的 SQL 语句, 需要在 mybatis -config.xml 中加载才能执 行。

答案:对

解析:无

172、Spring AOP 的实现机制分两种, 一种是 JDK 动态代理,一种是 CGLib 动态代理。

答案:对

解析:无

173、在 Spring MVC 的执行过程中, 前端控制器、处理器映射器、处理器适配器和视图解析器对 象的工作都是在框架的内部执行的。

答案:对

解析:无

175、Spring 开发不需要任何第三方依赖包。

答案:错

解析:在使用 Spring 开发时, 除了要使用自带的 jar 包外, Spring 的核心容器还需要依赖 commons.logging 的 jar 包。

176、

只需要将@Controller 注解标注在普通 Java 类上,然后通过 Spring 的扫描机制找到标注了 该注解的 Java 类,该 Java 类就成为了Spring MVC 的处理器类。

答案:对

解析:无

178、@RequestMapping 的 value 属性中, 可以指定映射单个的请求 URL,也可以将多个请求映 射到一个方法上。

答案:对

解析:无

179、@ControllerAdvice 注解结合方法型注解@ExceptionHandler,可以捕获 Controller 中抛出的 指定类型的异常,从而实现不同类型的异常统一处理。

答案:对

解析:无

180、MyBatis 中, @Param 注解的功能是指定 SQL 语句中的参数,通常用于 SQL 语句中参数比较 多的情况。

答案:对

解析:无

181、在@Results 注解中, 只能包含一个@Result 注解。

答案:错

解析:可以包含多个的,@Result 注解的作用是完成实体类中属性和数据表中字段的映射。

183、SqlSessionFactory 对象是线程安全的,它一旦被创建,在整个应用程序执行期间都会存在。

答案:对

解析:无

184、@RequestParam 注解的 required 属性用于指定参数是否必须,它的默认值为 false。

答案:错

解析:required 属性用于指定参数是否必须,默认是 true ,表示请求中一定要有相应的参数。

185、在复杂 POJO 数据绑定时,如果数据绑定到 Map 类型的属性, 客户端请求的参数名称必须 和要绑定的 Map 中的具体对象的具体属性的名称保持一致。

答案:对

解析:无

186、MyBatis 映射文件主要用于实现 SQL 语句和 Java 对象之间的映射,使 SQL 语句查询出来的 关系型数据能够被封装成 Java 对象。

答案:对

解析:无

188、构造方法实例化是通过 Bean 对应类中默认的无参构造方法来实例化 Bean。

答案:对

解析:无

189、Spring MVC 支持多种视图技术, 支持 JSP 、Velocity 和 FreeMarker 等多种视图技术。

答案:对

解析:无

190、Mapper.xml 文件中配置了操作数据库的 SQL 语句, 需要在 mybatis -config.xml 中加载才能 执行。

答案:对

解析:无

191、在@Results 注解中, 可以包含多个@Result 注解,一个@Result 注解完成实体类中一个属性 和数据表中一个字段的映射。

答案:对

解析:无

192、web.xml 文 件 中 , 元 素 中 的 1 表 示 在 项 目 启 动 时 会 立 即 加 载 DispatcherServlet 前端控制器。

答案:对

解析:无

193、开启当前 Mapper 的 namespace 下的二级缓存,可以通过 MyBatis 映射文件中的元 素来完成。

答案:对

解析:无

194、Core 模块提供了Spring 框架的基本组成部分, 包括 IoC 和 AOP 功能。

答案:错

解析:Core 模块提供了Spring 框架的基本组成部分, 包括 IoC 和 DI 功能。

195、MyBatis 的@Insert 注解就是将 SQL 语句直接写在接口上, 使得代码书写更加简单, 减少了 大量的 XML 文件的配置。

答案:对

解析:无

196、关系型数据库的关联关系中,在“一”的一方,添加“多”的一方的主键作为外键。

答案:错

解析:应该是在“多”的一方, 添加“一”的一方的主键作为外键。

197、MyBatis 中使用注解进行删除时, 一般将 SQL 语句直接写在接口上。

答案:对

解析:无

198、在 Spring MVC 中进行 JSON 数据绑定时,需要在 pom.xml 文件中导入 Jackson 转换核心包、 Jackson 转换的数据绑定包和 JSON 转换注解包的相关依赖。

答案:对

解析:无

199、@RequestMapping 注解只能标注在方法上。

答案:错

解析:@RequestMapping 注解用于建立请求 URL 和 Handler (处理器)之间的映射关系,该注解 可以标注在方法上和类上。

200、MyBatis 中,默认开启了延迟加载。

答案:错

解析:MyBatis 默认没有开启延迟加载, 需要在核心配置文件 mybatis -config.xml 中的元 素内进行配置。

201、在注册自定义异常处理器时,只能使用注解的方式注册。

答案:错

解析:在注册自定义异常处理器时, 可以使用注解的方式注册,也可以在 Spring MVC 的配置文件 中使用元素注册。

202、在 Spring MVC 中进行简单类型的数据绑定,只需客户端请求参数的名称和处理器的形参名 称一致即可,请求参数会自动映射并匹配到处理器的形参完成数据绑定。

答案:对

解析:无

203、集合中存储 POJO 类型数据时, Spring MVC 支持直接使用集合形参进行数据绑定。

答案:错

解析:集合中存储 POJO 类型数据时,Spring MVC 不支持直接使用集合形参进行数据绑定。但是, 可以将集 合作为对象的属性或者使用 JSON 类型的集合数据来实现数据绑定。

204、在@Many 注解中,select 属性用于指定关联属性的值。

答案:对

解析:无

205、在 Bean 的两种作用域 singleton 和 prototype 中, Spring 容器对 Bean 的生命周期的管理是 相同的。

答案:错

解析:在 Bean 的两种作用域 singleton 和 prototype 中, Spring 容器对 Bean 的生命周期的管理是 不同的。在 singleton 作用域中,Spring 容器可以管理 Bean 的生命周期,控制着 Bean 的创 建、初始化和销毁。在 prototype 作用域中,Spring 容器只负责创建 Bean 实例,不会管理 其生命周期。

206、JSON 是一种轻量级的数据交换格式, 它与 XML 非常相似, 都可以用来存储数据, 但相对于 XML 来说,JSON 解析速度更快,占用空间更小。

答案:对

解析:无

207、DispatcherServlet 的本质是一个 Servlet,可以在项目的 web.xml 文件中完成 DispatcherServlet 的配置和映射。

答案:对

解析:无

208、使用mvc:interceptor元素声明拦截器时, mvc:interceptor中的子元素可以按照任意位 置编写。

答案:错

解析:mvc:interceptor中的子元素必须按照规定的代码配置顺序进行编写。

209、构造方法注入是指 Spring 容器调用构造方法注入被依赖的实例,构造方法可以是有参的或 者是无参的。

答案:对

解析:无

210、在使用 MyBatis 嵌套查询方式进行 MyBatis 关联映射查询时, 使用 MyBatis 的延迟加载在一 定程度上可以降低运行消耗并提高查询效率。

答案:对

解析:无

211、元素是映射文件的根元素,该元素只有一个 namespace 属性。

答案:错

解析:元素是映射文件的根元素。

212、MyBatis 中, @Update 注解的参数可以是一条插入语句, 也可以是一条更新语句。

答案:错

解析:@Update 注解的参数是一条更新语句,参数是插入语句的注解为@Insert。

213、 元 素 中 有 3 个 键 值 相 关 的 属 性 , 分 别 是 keyProperty 、 keyColumn 和 useGeneratedKeys。

答案:错

解析:keyProperty,keyColumn,useGeneratedKeys 这三个属性只对和元素有效。

214、CGLib 动态代理采用底层的字节码技术, 通过继承的方式动态创建代理对象。

答案:对

解析:CGLib 动态代理不要求目标类实现接口,它采用底层的字节码技术,通过继承的方式动态创 建代理对象。

215、SqlSession 对象是线程不安全的。

答案:对

解析:无

216、Spring MVC 提供了对 MVC 模式的全面支持,它可以将表现层进行解耦,同时, Spring MVC 是基于请求-响应处理模型的请求驱动框架,简化了表现层的实现。

答案:对

解析:无

217、JDK 动态代理可以实现无侵入式的代码扩展,并且可以在不修改源代码的情况下,增强某些 方法。

答案:对

解析:无

218、在数据库中,多对多的关联关系通常使用一个中间表来维护。

答案:对

解析:无

222、将所有关联的请求参数封装在一个 POJO 中, 然后在方法中直接使用该 POJO 作为形参来完 成数据绑定的过程称为 POJO 类型的数据绑定。

答案:对

解析:无

223、在传统 JDBC 编程中,SQL 变动需要改变 Java 代码, 违反了开闭原则。

答案:对

解析:无

224、控制反转(Inversion of Control,缩写为 IoC) 用来降低程序代码之间的耦合度。

答案:对

解析:无

225、使用 String 数据对客户端请求中的参数进行绑定时,客户端请求的参数名称需要与调用方 法的形参名称保持一致。

答案:对

解析:无

226、MyBatis 映射文件中元素是配置文件的根元素, 它包含一个 namespace 属性, 该 属性为这个指定了唯一的命名空间。

答案:错

解析:元素是配置文件的根元素

227、SqlSessionFactory 对象的 openSession()方法的参数为 boolean 值时, 默认为 false。

答案:错

解析:SqlSessionFactory 对象的 openSession()方法的参数为 boolean 值时,若传入 true 表示关闭事务控制, 自动提交;若传入 false 表示开启事务控制。若不传入参数, 默认为true。

228、如果一个项目有多个映射文件,则 mybatis -config.xml 核心配置文件中需要在元 素下配置多个元素指定映射文件的路径。

答案:对

解析:无

233、Spring MVC 作用于三层架构中的()(Web 层),用于接收客户端的请求并进行响应。

答案:表现层

解析:无

234、Spring MVC 的响应方式可以分为页面跳转和()两种。

答案:数据回写

解析:无

234、实例化 Bean 有 3 种方式,分别是构造方法实例化、静态工厂实例化、()实例化。

答案:实例工厂

解析:实例化 Bean 有 3 种方式,分别是构造方法实例化、静态工厂实例化、实例工厂实例化。

235、()是 Spring MVC 的流程控制中心, 也称为 Spring MVC 的前端控制器。

答案:DispatcherServlet

解析:无

240、使用()注解可以将普通的类声明成 Spring MVC 的处理器类。

答案:@Controller

解析:无

241、AOP 的全称是 Aspect -Oriented Programming , 中文翻译是()。

答案:面向切面编程

解析:无

242、@RequestMapping 注解可以标注在类上和()上。

答案:方法

解析:@RequestMapping 注解用于建立请求 URL 和 Handler (处理器)之间的映射关系,该注解 可以标注在方法上和类上。

243、在 Spring3.2 中提供了一个新注解(),主要用于异常处理。

答案:@ControllerAdvice

解析:无

245、Spring MVC 提供了()注解定义参数的别名, 用于完成请求参数名称和处理器的形参名称 不一致时的数据绑定。

答案:@RequestParam

解析:无

246、()是对象的控制权从应用程序转移到了 IoC 容器。

答案:控制反转

解析:Spring 框架提出了 IoC 控制反转机制,在 IoC 中, 对象由 Ioc 容器统一管理,当程序需要使 用对象时, 可以直接从 IoC 容器中获取。这样对象的控制权就从应用程序转移到了 IoC 容 器,因此称为控制反转。

247、使用集合进行简单数据类型绑定时, 处理器的形参名称需要使用()注解标注。

答案:@RequestParam

解析:无

249、可以用于结果集映射的三大注解有@ResultMap 、@Results 和()。

答案:@Result

解析:无

250、Spring AOP 的常用实现方法有两种, 分别是基于 XML 文件的实现和基于()的实现。

答案:注解

解析:无

251、()是 Spring 容器最基本的接口,它的实现机制采用的是 Java 经典的工厂模式。

答案:BeanFactory

解析:无

252、mvc:interceptor元素的子元素mvc:mapping通过()属性配置拦截器作用的路径,属性 值为时“/**”表示拦截所有路径。

答案:path

解析:无

253、在 Java EE 开发中,SSM 框架指的是 Spring、()以及 MyBatis。

答案:Spring MVC

解析:无

254、根据数据格式, 可以将回写到输出流的数据分为()和 JSON 数据。

答案:普通字符串

解析:无

255、在 MyBatis 中, 使用()元素可以处理一对多关联关系。

答案:

解析:无

256、MyBatis 由会话工厂()创建 SqlSession 对象, 该对象中包含了执行 SQL 的所有方法。

答案:SqlSessionFactory

解析:无

258、注解@RequestMapping 的默认属性是()属性。

答案:value

解析:value 属性是@RequestMapping 注解的默认属性。当 value 属性是@RequestMapping 注解 显式使用的唯一属性时, 可以省略 value 的属性名。

262、MyBatis 中, @One 注解的作用等同于 XML 配置文件中的()元素。

答案:

解析:无

265、在关系型数据库中, 表与表之间存在着三种关联映射关系,分别为一对一、一对多和()。

答案:多对多

解析:无

266、在 Spring MVC 中定义一个拦截器非常简单,可以通过实现()接口定义。

答案:HandlerInterceptor

解析:在 Spring MVC 中定义一个拦截器非常简单, 常用的拦截器定义方式有以下两种。第一种 方 式 是 通 过 实 现 HandlerInterceptor 接 口 定 义 拦 截 器 。 第 二 种 方 式 是 通 过 继 承 HandlerInterceptor 接口的实现类 HandlerInterceptorAdapter,定义拦截器。

268、()注入是指 Spring 容器调用构造方法注入被依赖的实例,构造方法可以是有参的或者是 无参的。

答案:构造方法

解析:无

269、Spring MVC 常 见 的 默 认 类 型 包 括 HttpServletRequest 、 HttpServletResponse 、()、 Model/ModelMap。

答案:HttpSession

解析:无

270、()注解用于映射删除语句,其作用等同于 XML 配置文件中的元素。

答案:@Delete

解析:无

271、MyBatis 使用()注解实现数据表的一对多关联查询, 它作用等同于 XML 配置文件中的 元素。

答案:@Many

解析:无

272、在 Spring MVC 中,()对象包含视图相关内容和模型数据两部分。

答案:ModelAndView

解析:ModelAndView 对 象包含视图相关内容和模型数据这两个部分。其中,视图相关的内容可 以设置逻辑视图的名称, 也可以设置具体的 View 实例;模型数据则会在视图渲染过程中被 合并到最终的视图输出。

273、在 MyBatis 中, 元素可以配置两种类型的事务管理器,分别是()和 MANAGED。

答案:JDBC

解析:无

274、元素的属性中,用于指定实体类对象中集合类属性所包含的元素类型的是()。

答案:ofType

解析:无

275、在 Spring 配置文件中,Bean 的作用域是通过元素的()属性来指定的。

答案:scope

解析:scope 属性用于设定 Bean 实例的作用范围,其属性值有: singleton (单例) 、prototype (原 型) 、request 、session 和 global session。

276、当()注解标注在方法上时, 该方法就成了一个可以处理客户端请求的 Handler (处理器)。

答案:@RequestMapping

解析:无

277、()就是由 IoC 容器在运行期间动态地将某种依赖资源注入对象之中。

答案:依赖注入

解析:无

278、根据请求参数类型和参数个数等数据信息的复杂程度, 可以将 Spring MVC 中的数据绑定分 为简单数据绑定和()两类。

答案:复杂数据绑定

解析:无

279、()模块提供了 Spring 框架的基本组成部分,包括 IoC 和依赖注入(Dependence Injection, DI)功能。

答案:Core

解析:无

281、当请求的映射方式是 REST 风格时,Spring MVC 提供了()注解进行简单类型数据绑定。

答案:@PathVariable

解析:无

285、在 Maven 指令的配置界面中, “Command line”配置的是对项目执行什么 Maven 指令,填写 ()命令就可以让项目在 Tomcat 中运行。

答案:tomcat7:run

解析:无

286、MyBatis 的一级缓存是()级别的缓存。

答案:SqlSession

解析:无

290、Spring MVC 的前端控制器也是一个(), 它可以在项目的 web.xml 文件中进行配置。

答案:Servlet

解析:无

291、静态工厂实例化 Bean 需要使用 factory-method 属性来指定所创建的()。

答案:静态工厂方法

解析:无

293、MyBatis 框架是一个 ORM 即()框架。

答案:对象关系映射

解析:无

294、ClassPathXmlApplicationContext 从()加载配置文件,实例化 ApplicationContext 接口

答案:类路径

解析:无

295、@RequestMapping 注解的()属性可以对处理器映射的 URL 请求方式进行限定。

答案:method

解析:无

297、()元素表示结果映射集,是 MyBatis 中最重要也是功能最强大的元素。

答案:

解析:无

298、MyBatis 中使用()注解可以实现数据表的一对一关联查询。

答案:@One

解析:无

299、Spring MVC 配置注解驱动,让项目启动时启用注解驱动,并且自动注册()和 HandlerAdapter。

答案:HandlerMapping

解析:无

300、在 MyBatis 框架中, SqlSession 对象由()对象创建。

答案:SqlSessionFactory

解析:无

302、元素的()属性用于指定引入嵌套查询的子SQL 语句。

答案:select

解析:无

303、Spring MVC 的三大组件分别是处理器映射器、()和视图解析器。

答案:处理器适配器

解析:无

305、目前最流行的 AOP 框架有两个, 分别为()和AspectJ。

答案:Spring AOP

解析:目前最流行的 AOP 框架有两个, 分别为 Spring AOP 和AspectJ。Spring AOP 使用纯 Java 实 现,不需要专门的编译过程和类加载器,在运行期间通过代理方式向目标类织入增强的代码。 AspectJ 是一个基于 Java 语言的 AOP 框架,在编译时提供横向代码的织入。

306、在 Spring MVC 的执行过程中, Controller 类的代码执行后, 会返回一个()对象。

答案:ModelAndView

解析:无

307、元素用于指定参数值的属性是 value 和()。

答案:ref

解析:使用元素可以为 Bean 的属性指定值。该元素有以下几个属性。index: 用于设置构造参数的序号。 type:用于指定构造参数类型。 ref:用于指定参数值。 value: 用于指定参数值。

308、Spring MVC 使用页面跳转的方式进行响应时, 可以通过方法的返回值指定跳转页面,方法 的返回值可以设定为 void 类型、()类型和 ModelAndView 类型。

答案:String

解析:无

309、构造方法实例化是指 Spring 容器通过 Bean 对应类中默认的()方法来实例化 Bean。

答案:无参构造

解析:构造方法实例化是指 Spring 容器通过 Bean 对应类中默认的无参构造方法来实例化 Bean。

312、依赖注入通常有两种实现方式, 一种是()注入, 另一种是属性 setter 方法注入。

答案:构造方法

解析:无

313、在 Spring MVC 配置文件中使用()元素指定需要扫描的类包。

答案:

解析:无

315、将 Bean 定义为 prototype 作用域时, 只需在配置文件中将元素的()属性值设置为 prototype 即可。

答案:scope

解析:无

316、当程序中配置了多个拦截器时,拦截器中的()方法会按照配置文件中拦截器的配置顺序执 行。

答案:preHandle()

解析:无

317、当执行拦截器中()方法时,如果方法返回的值为false,则将中断后续所有代码的执行。

答案:preHandle()

解析:程序收到请求后, 首先会执行拦截器中的 preHandle()方法, 如果 preHandle()方法返回的值 为 false,则将中断后续所有代码的执行; 如果 preHandle()方法的返回值为true,则程序会 继续向下执行 Handler 的代码。

318、在 MyBatis 中, 通过()元素可以处理一对一关联关系。

答案:

解析:无

319、MyBatis 的核心配置文件可以随意命名,但通常将其命名为()。

答案:mybatis -config.xml

解析:无

320、()核心配置文件主要配置了 MyBatis 的运行环境等信息。

答案:mybatis -config.xml

解析:无

321、对于数据源的配置, MyBatis 框架提供了 UNPOOLED、()和 JNDI 三种数据源类型。

答案:POOLED

解析:无

322、当发生客户端请求需要传递多个同名参数到服务器端的情况,可以使用()的方式来接收客 户端的请求参数。

答案:数组绑定

解析:无

323、要实现多文件上传, 需要在文件上传输入框中增加()属性。

答案:multiple

解析:文件上传输入框中使用了 multiple 属性,则在上传文件时,可以同时选择多个文件进行上 传,即可实现多文件上传。

325、MyBatis 映射文件中元素的子元素的 order 属性可以被设置为()或 AFTER。

答案:BEFORE

解析:无