《框架程序设计》期末复习
📢📢📢传送门
- 单选题
- 判断题
- 简答题
单选题
在项目的构建过程中,在需要的时候系统会首先从中央仓库检索所需的Jar包文件;如果无法在中央仓库中找到所需Jar包文件,则会转而从本地仓库中获取这些文件。
在项目的开发过程中, MyBatis负责的任务包括( B )。A. 创建数据库表结构 B. 数据库表的增删查改操作 C. 编写业务逻辑描述 D. 实现页面展示与数据控制转发
当项目引用依赖的范围指定为以下( B )选项时,则表示该依赖在编译阶段是必要的,在运行阶段无需依赖。例如:Servlet API在编译一个Web应用时必然是必要的,在运行时Servlet容器(如Tomcat)会提供该API功能。
4.下列关于MyBatis描述错误的是哪一项?( C )。
A. MyBats框架的开发速度比JDBC更高,在性能上则稍逊一筹
B.通过配置对象与其对应表的映射关系可简化数据库操作
C.MyBatis是一个全自动化地处理ORM事务的框架
D.MyBatis最初源于iBatis,在迁移至Google Code后被重命名为MyBats, 现版本为3.x版
C. MyBatis负责处理请求的分布。
在以下选项中, 常用于处理db更新指令的是( B )。
7.阅读下图 UserMapper.xml映射文件中的SQL配置,以下说法正确的是( D )。

A.字段parameterType不允许接收map类型的参数
B.在图中的SQL语句中,两个参数的名称具有灵活性
C.当调用该程序代码时,方法返回结果值仅限于User数据类型
D.resultType属性用于指定绑定的结果数据类型
8.有关MySQL-Bean-It(MyBatis)工作原理说法错误的是( C )。
A. MyBatis的全局配置文件设定了运行环境等相关信息
B. 在MySQL-Bean-It映射文件中设置了执行数据库操作所需的SQL语句
C. 可以通过获取会话对象SqlSession来构建SqlSession对象
D. SqlSession对象集成了执行SQL操作的所有方法
9.以下关于< select>元素及其属性说法错误的是( C )
A. < select>元素用于映射查询语句,并从数据库中读取数据后传递给开发人员
B. parameterType属性指定传入SQL语句参数所属的数据类型或别名
C. resultMap代表外部resultMap的命名引用,在返回结果时可同时结合使用其类型信息以及该属性本身
D. 在同一个映射文件中可以配置多个< select>元素
10.下列选项中,对代码说法有误的是( D )。

A.由于test属性的条件得到满足时会触发该标签内的SQL片段被插入到该SQL语句中
B.如果userName参数值为空,则该SQL语句就不会生成该WHERE子句
C.在逻辑判断中包含多个判断条件的情况下可以通过引入AND或OR来实现多阶段逻辑组合
`D.修改test属性值为"username!=null and username!=''"后会使得 userName 参数为空字符时不触发后续操作
A.由于test属性的条件得到满足时会触发该标签内的SQL片段被插入到该SQL语句中
B.如果userName参数值为空,则该SQL语句就不会生成该WHERE子串
C.在逻辑判断中包含多个判断条件下可以选择使用AND或OR来进行多阶段逻辑组合
`D.修改test属性值为"username!=null and username!=''"后会使得 userName 参数为空字符时不执行后续操作流程
当用户需要批量删除多条记录时
12.下列选项中,对于Spring框架说法错误的是( C )。
A.在管理Java Bean的过程中, Spring框架能够降低它们之间的耦合度
B.通过AOP实现权限拦截,同时也能完成性能监控与数据缓存等功能,相较于传统OOP方式, Spring大大减少了代码冗余与复杂性
C.由于采用了侵入式设计, Spring的业务逻辑代码难以快速移植到其他主流框架中
D.Spring框架支持便捷集成各种优秀第三方框架(如MyBatis、Quartz等)
13.下列关于Spring Bean装配实现的说法中存在错误的是( B )。
A.Bean的装配是指将容器中的相应对象赋值给另一个Bean对象的过程。
B.当采用注解式装配时,默认会按照类型化的对象进行赋值。若容器中未找到对应类型的Bean对象,则程序不会报错,默认将其赋以null值。
C.在为Spring Bean设置初始属性值时可以选择采用子元素注入的方式,并需确保该属性具有相应的setter方法以实现动态绑定。
D.在为Spring Bean设置初始属性值时可以选择采用子元素构造注入的方式,并需确保提供的构造函数参数数量与实际需求一致以避免配置错误。
以下关于面向切面编程说法正确的是( A )。
A.面向切面编程通过横向分离相似功能模块,并整合到独立的功能块中来实现重复逻辑的集中化
B.基于对象的概念设计下,在编译阶段将现实世界的事物转化为类结构,并通过属性描述事物状态和行为方式
C.在程序编译前阶段,在静态状态下将代码预先定义至特定类的方法或位置上
D.作为一种新兴的编程范式,在某种程度上取代了传统的面向对象编程方法
15.关于SpringMVC框架说法错误的是( D )。
A.基于请求URL地址自动分配到相应的处理器处理请求
B.SpringMVC能够自动将请求参数绑定至JavaBean对象
C.当处理器完成请求处理后会将数据传递给视图组件进行显示
D.SpringMVC具备自动验证功能
以下对于@RequestMapping注解说法错误的是( C )。
A.value属性用于指定映射请求的URL
B.method属性用于指定请求处理方法可以处理的HTTP请求方法(如get、post、put请求等)
C.@RequestMapping注解仅限于标注在函数或方法上面
D.@RequestMapping注解中可以指定多个URL映射路径
- 关于面向切面编程说法正确的是( A )
A. 面向切面编程将具有相同业务逻辑的代码块横向分隔,并将重复的业务逻辑提取到一个独立的功能模块,在程序运行时按配置位置动态调用。
B. 面向切面编程是一种新兴的编程理念,旨在取代面向对象编程方法。
C. 面向切面编程是程序在编译前静态确定代码插入指定位置的编程思想。
D. 面向切面编程是基于对象概念将现实世界的事物抽象为类,通过类属性描述事物的状态,通过方法体现事物的行为方式。
如何通过以下哪个路径访问到该控制器方法?( B )
A.http://localhost:8080/emp/list
B.localhost:8080/app/emp/list
C.localhost:8080/sys/emp/list
D.localhost:8080/sys/app/emp/list
19.在以下关于Spring 框架的说法中,请指出错误的一项( D )。
A. Spring 框架有助于降低 JavaBean 与其他组件之间的耦合度
B. AOP(面向切面编程)是对 OOP(面向对象编程)的一种补充方式,在程序中可用来实现登录认证、权限判断、日志记录以及性能监控等功能。
C. Spring 框架使得集成 MyBatis、Redis(缓存系统)、Lombok 等各种优秀开源框架变得更加便捷
D\. 基于Spring 框架开发的应用逻辑代码与其密切关联,并不具备移植到其他主流框架的能力
20.注释( B )用于处理客户端发送的JSON格式数据。 A.@ResponseBody B.@RequestBody C.@RequestParam D.@PathVariable
在SSM框架整合时,在配置文件中可以选择(A)。
A.< mvc:default-servlet-handler/>
B.< mvc:annotation-driven/>
C.< aop:aspectj-autoproxy/>
D.< context:component-scan/>
关于以下异常信息的描述正确的是选项A。
该异常信息提示系统未能发现类型为'edu.cqie.ssm.service.SysUserService'的bean。
具体表现为系统期望至少一个具备自动生成候选资格的bean未被识别。
选项A指出缺少服务层扫描配置导致相关对象未能加入容器。
选项B提到pom.xml文件中缺乏必要的依赖关系未被包含。
选项C认为客户端发送的请求路径有误。
选项D的根本原因是Spring框架与JDK版本存在兼容性问题。
在基于注解的方式整合SSM框架时
以下关于Spring事务隔离级别设置说法错误的是( D )。
A.当设置为READ_UNCOMMITTED时,在不提交的情况下允许当前事务能够访问其他事务未完成修改的数据操作;这种情况下可能会导致"脏读"、"不可重复读"以及"幻象问题"的发生
B.当选择READ_COMMITTED隔离级别时;系统会确保一个特定的交易仅能访问到已提交但尚未被其他交易处理的数据内容;从而避免出现"脏读"现象
C.REPEATABLE_READ隔离级别下;系统会保证同一交易单元在同一查询中进行多次数据获取操作时的结果一致性;从而有效防止出现"脏.read "以及'不可重复reads'的情况
D.SERIALIZABLE隔离级别是一种串行执行的工作模式;通过这种方式不仅可以防止出现'脏.read '、'不可重复reads '以及'幻象问题'等一致性冲突;还可以实现与现有应用系统的良好兼容性;这也是Spring框架默认采用的一种隔离级别
请选出下述关于@Transactional注解属性描述正确的选项:( C )。
请解释以下内容:
A项中使用"propagation"来设定事务隔离级别;
B项则使用"isolation"来设定事务传播行为;
请解释以下内容: C项指出"timeout"被用来设定事务执行的时间超限时的行为;
D项通过"noRollbackFor"来设定会导致回滚的具体异常类别。
当支付方法(makePayment)将事务传播行为更改为此处时,在支付失败时只会回滚支付方法相关的事务而不影响订单服务相关的事务。
当使用Maven进行项目构建时,请问您最先会从下列哪个仓库中获取Jar包文件?( A )
- 在Maven的整个生命周期过程中,在哪个阶段会进行打包操作?( B )
选项A.compile
选项B.package
选项C.test
选项D.clean
29.MyBatis中用于执行SQL语句的对象是什么?( B )
A. MyBatis管理的会话工厂类 B. 对应的会话工厂
C. Configuration D. Mapper
- 在MyBatis中,请问哪个属性用于指定参数类型?( B )
A. return typeB. parameter type
C. namespace D. id
31.在MyBatis中,在执行涉及返回大量对象的查询时,请从以下选项中选择正确的答案:( C ) A.选单表映射 B.选单表映射列表 C.选单表映射列表 D.选单表
在Spring拦截器链中,如果一个拦截器的preHandle方法返回false,那么后续的拦截器和目标方法会怎样?( C )
MySQL的
在MyBatis的
A.Item B.List
C.Items `D.Collection
- 在Spring Aspect-Oriented Programming(AOP)框架中,默认用于确定方法执行的关键点是什么?其中选项包括:
- Option A: execution()
- Option B: aop()
- Option C: aopConfig()
- Option D: aspectj()
在Spring框架中属于面向切面开发的模块是什么?( D ) A. Spring Core B. Spring MVC C. Spring ORM D. Spring AOP
- 在Spring框架下,依赖注入(IoC)的主要作用是什么?( C )
A.提高代码运行速度 B.减少内存占用
C.让容器管理对象的创建过程D.简化数据库操作
38.Spring容器初始化时,在以下关于组件(Bean)装配的说法中错误的是( B )
A. Bean的配置是指将容器中的相应对象注入到另一个Bean属性的过程
B. 当使用注解进行依赖注入时,默认会根据类型进行配置。如果容器中有多个具有相同类型的Bean存在,则Spring会自动处理相关配对问题。
C. 当在Spring配置文件中采用< property>子元素对组件属性进行注入时,则该属性必须提供相应的setter方法
D. 当在Spring配置文件中采用< constructor-arg>子元素对组件属性进行构造性注入时,则必须提供相应数量参数的构造函数
在Spring的AOP框架中,请问以下哪个知识点是用来考察定位方法执行关键点的?( D )
A.aspect()
B.pointcut()
C.joinPoint() D.execution()
关于SQL映射配置中< resultMap>标签的应用问题,请判断以下说法错误的是( C )
A. < id>标签用于为表中的主键列创建映射关系
B. < resultMap>标签负责自定义数据的映射处理
`C. < result>标签中的property属性对应SQL查询返回的结果列名
D. property与column值相同时,默认无需显式配置
在Spring MVC框架中,请问哪个组件负责转发到相应处理器进行处理?答案: A )
A.负责转发到相应处理器的DispatcherServlet
B.HandlerAdapter
C.ViewResolver
D.Controller
请指出在Spring MVC框架中用于指定处理POST请求的方法的注解是什么?( B )
选项如下:A.@GetMapping;B.@PostMapping
第43题考察的是Spring MVC框架中如何通过注解指定处理GET请求的方法。其中正确的选项是:
其中正确的选项是: A. @GetMapping B. @PostMapping
在SpringMVC的核心管理层上,在@Controller注解标记的类中,请问如何让控制器的方法能够返回JSON格式的数据?选项为:A选项:请查看以下内容。
在SpringMVC框架中,请问以下哪种架构用于将数据传递给视图层?( A )
A. ModelView architecture B. ModelFile architecture
C. List architecture D. Dispatcher architecture
在SpringMVC框架中,请问以下哪个注解用于接收响应中的数据?( A )
在SpringMVC中采用哪一个类可以直接将数据发送给视图而无需额外处理?
在以下关于MyBatis配置文件的说法中,请指出错误的一项:选项C
当前端将请求参数以JSON格式封装至请求体时,使用(A)注解将其绑定至JavaBean。
50.SSM 框架包括哪三个主要组成部分?( A )
A.Spring、Spring MVC 和 MyBatis B.春
ing和 Hibernate
C Spring Boot
D Spring 和 Hibernate
请指出以下哪一项是Spring框架在SSM环境中所实现的核心功能? A.数据库操作 B.视图渲染 C.静态资源的访问 D. 依赖注入和技术与面向切面编程技术的结合
- 搭建SSM框架时,在整合Spring和MyBatis过程中使用的中间件是哪一项?( C )
A. Spring 的 JDBC 驱动程序 B. Spring Data JPA 驱动程序
C. MyBatis 和 Spring 的集成工具D. Hibernate 驱动程序
53.以下对于HashMap注解说法正确的是( C )。
A. value属性用于表示目标地址,在同一个目标地址下可以将HashMap注解应用于不同的控制器方法上实现多对一的关系。
B. @HashMap注解只能标注在类的方法上
C. @HashMap注解支持多个键值对存储功能,并且每个键值对之间必须唯一以避免冲突
D. method属性用于设定处理请求的方法,在此框架下可处理GET、POST等多种HTTP操作类型
在Spring框架中,请问以下哪个选项对应的是事务管理器接口?请从下述选项中选择:A.TransactionManager;B.PlatformTransactionManager;C.DataSourceTransactionManager;D.JtaTransactionManager.
55.关于SpringMVC框架说法错误的是( C )。
A. SpringMVC使用DispatcherServlet将请求的URL分发到相应的处理器进行处理
B. 对于form表单请求,当参数名与Java Bean属性相同时,SpringMVC可以自动将请求参数绑定到Java Bean对象上,并不需要手动解析请求参数。
C. SpringMVC在处理器处理完成后,不能将数据传递给视图进行渲染。
D. SpringMVC可以实现自动对提交的表单数据进行校验,并避免在代码中重复手动校验
在Spring事务配置中,请问哪个属性用于定义事务传播的行为?( A )
A.propagation B.isolation
C.timeout D.read-only
- Spring容器初始化过程中,以下关于组件(Bean)装配的说法错误的是( B )
A. Bean的装配是指将容器中的相应对象赋值给另一个Bean的属性的过程
B. 当采用注解式装配方式时,默认情况下,该@Autowired注解会根据类型进行组件配对。如果该类型下的Bean在容器中存在多个实例,则Spring框架会自动完成组件配对。
C. 在Spring配置文件中使用< property>子元素注入组件属性时,必须确保该属性对应的目标类具有相应的setter方法
D. 在Spring配置文件中使用< constructor-arg>子元素注入组件属性时,在构造函数中必须提供相应的参数个数
58.以下有关事务管理方式相关说法错误的是哪一项?( B )
A.Spring中的事务管理主要包含两种类型:传统的编程式事务管理和声明式的事务管理
B.传统的编程式事务管理是通过AOP技术实现的,并通过编写代码实现事物的开始、提交和回滚
C.声明式的事务管理则是将事物逻辑作为一个独立的“切面”代码进行单独编写,并将其整合到业务目标类中
D.声明式的最大优势在于简化了开发者的事物管理流程,在配置文件中即可定义相关规则并应用到业务逻辑中
- 关于SSM框架整合,下列说法错误的是?( C )
A. Spring负责实现控制反转和依赖注入机制
B. Spring MVC被用来实现视图渲染和用户请求的分发
C. MyBatis则专注于处理事务管理与数据逻辑
D. 而MyBatis还负责将数据持久化存储到数据库中
在SSM框架下,在Service层的方法如何实现获取MyBatis所需的Mapper接口?( A )
判断题
1.Maven的依赖管理机制可以自动解决依赖冲突。( × )
- Spring声明式事务在默认设置下仅适用于处理
RuntimeException及其子类异常的事务回滚操作。(√)
3.pom.xml文件是Maven项目的核心配置文件,包含项目的依赖、构建等信息。( √ )
在尝试使用try{}catch(){}代码块捕获方法中的异常时,在这种情况下所声明的事务仍会自动地执行回滚操作。( × )
这一技术主要是针对面向对象与关系型数据库中数据类型不匹配问题而设计的。它通过建立Java对象与数据库表之间的映射关系,并实现了对象到数据库表的自动生成。( √ )
6.SQL映射文件中可以包含多个id值相同的< resultMap>元素。( × )
在配置一对多关系时,请使用MyBatis标签并指定column属性来确定外键列的位置。
8.在DispatcherServlet的初始化阶段中(即 × 标记的位置),它会创建一个ClassPathXmlApplicationContext类型的IoC容器。
9.使用MyBatis框架时,只需导入MyBatis的jar包就可自动操作数据库了。( × )
10.它作为一个全自动框架设计,在开发过程中开发者只需要明确地将持久化对象与数据库表之间的映射关系建立起来,并且就可以利用其提供的功能完成对数据库操作的能力。
在MySQL Annotations框架下的MyBatis Mapper XML配置文件中,可以使用< where>元素用于自动补充SQL语句中的WHERE子句,并根据< if>条件确定是否需要添加或取消前置的AND关键词。( √)
与< insert>元素相同,在被< update>和< delete>元素执行完后也会返回一个表示影响记录数量的整数值。( √ )
MyBatis(起源于iBatis)是一种具备常规SQL查询、存储过程以及高级映射功能的持久层框架。(√)
预处理函数preHandle()会在处理器处理请求前被调用,在此之后才会调用后处理函数postHandle()。因此,在对处理器方法进行权限验证时,请将相关代码插入到preHandle()函数体内。
15.在Spring框架中,依赖注入(DI)只能通过构造器注入实现。( × )
在SpringMVC框架的控制器方法中,在形参前面添加带@PathVariable或带@RequestParam注解的方式都可以用来获取请求参数,并且它们的功能是相同的。( × )
在SpringMVC框架中,@RequestMapping注解仅限于方法上使用,并非适用于类中。( × )
当Spring Bean的作用域被设为prototype时,在这种情况下每次从容器中取出的对象始终都是同一个实例。(×)
- SpringMVC中的filter可以在请求抵达Controller之前进行一些preprocessing operations。(
√)
在SpringMVC框架中,在DispatcherServlet中处理所有用户的请求需要配置URL映射路径为 /*。( × )
在MySQL框架的MyBatis动态SQL配置环境中能够使用trim标签替代set标签来消除SQL中的多余逗号符号。
22.@RequestMapping注解只能标注在方法上,不能标注在类上。( × )
23.在MyBatis框架中使用的SqlSession对象具备 thread-safe特性,并被多个线程所共用。( × )
- #{} 和 ${} 之间的主要区别在于前者会创建 PreparedStatement 参数占位符 "?" 并通过占位符安全地设置参数以避免直接插入可能导致的安全漏洞。另一种方法则直接在 SQL 语句中加入参数 这种做法虽然简化了代码 但增加了潜在的安全风险。(
√)
在Spring事务管理中,在使用@Transactional注解时仅限于用于方法而非用于类。( × )
采用 @Transactional 标签的方法必须是 public 类型。(将此标记添加到protected、private或package可见的方法时将无法起作用且不会引发错误。)
在运行mvn package命令后, Maven会将已打包的JAR文件放置于本地仓库
28.SSM框架中,通过配置事务管理器来实现事务管理,保证数据的一致性。( √ )
在配置bean的过程中,当需要为该bean进行属性注入时,必须同时添加一个property标签来完成操作.( × )
Maven会优先从本地仓库获取依赖项;当本地仓库不存在时,则会尝试从远程仓库获取,并将下载的依赖文件上传至本地仓库存储区。( √ )
简答题
在MySQL的MyBatis框架环境中,在进行数据库设计时会遇到查询结果列名称与所对应的实体类属性名称不一致的问题,请详细说明如何配置以实现自定义映射关系。
(1)使用< resultMap>标签自定义映射关系
(2)使用< id>标签定义主键列映射关系
(3)使用< result>标签定义普通列映射关系
用于< id>和< result>标签中设置property属性来命名实体属性字段,并指定column属性以标识查询结果表中的字段名称
在MyBatis框架中提供了大量功能性的标签用于构建动态SQL语句,请阐述哪些特定的标签可实现动态条件查询功能,并详细说明这些标签各自的作用。
通过动态构建where子句,在SQL语句中避免添加不必要的AND连接词;同时支持处理与trim相关的功能
< if>标签:用于执行条件判断操作;当判断结果为true时,则会添加对应的SQL片段
在Spring IoC容器环境中,请阐述基于注解机制的具体步骤与方法来实现对控制器层、业务逻辑层以及数据访问层组件的注册与依赖注入功能。具体来说,请详细说明如何通过注解配置实现这三个不同层次组件之间的交互与整合,并指出在实际应用中需要注意的关键点及操作流程。
(1)在控制器层组件上加上@Controller注解
(2)在业务逻辑层组件上加上@Service注解
(3)在数据访问层组件上加上@Repository注解
(4)使用@Autowired注解通过属性注入的方式实现组件装配
开发系统注册功能时
在控制器中的方法中调用HttpServletRequest对象获取其getParameter()方法来提取表单数据
(2)通过在控制器方法中加入多个形参来获取参数
(3)通过在控制器方法中自定义实体类型来接收参数
基于个人的理解,请您列出在 Maven Web 工程中集成 SSM 框架所需的配置文件列表,并简单阐述每个配置文件的功能。
(1)web.xml:配置DispatcherServlet。
springmvc.xml:用于将其中的控制器层组件与与SpringMVC框架相关的组件通过该配置文件进行注册至Spring容器中。
`spring-beans.xml:将业务逻辑组件模块和数据访问组件模块注册至Spring应用容器中。
(4)db.properties:配置数据库连接参数
