【基于轻量型架构的WEB开发】课程 作业3 Spring框架
一. 单选题(共12题,48分)
1. (单选题)以下有关Spring框架优点的说法不正确的是( )。
A. Spring就大大降低了组件之间的耦合性。
B. Spring是一种侵入式框架
C. 在Spring中,可以直接通过Spring配置文件管理数据库事务,省去了手动编程的繁琐,提高了开发效率。
D. Spring对Java EE开发中的一些API(如JDBC、JavaMail等)都进行了封装,大大降低了这些API的使用难度。
正确答案:B
答案解析:Spring是非侵入式的框架,不会影响原有代码
2. (单选题)下列选项中,关于<constructor-arg>元素说法错误的是( )。
A. <constructor-arg>元素用于给类的构造方法的参数注入值
B. 一个<constructor-arg>元素表示构造方法的一个参数
C. <constructor-arg>元素定义构造方法的参数,必须顺序和类中构造方法参数的顺序保持一致。
D. <constructor-arg>元素的type属性用于指定参数的类型
正确答案:C
答案解析:<constructor-arg>定义时不区分顺序,详见教材p89
3. (单选题)以下有关依赖注入说法错误的是()。
A. 依赖注入(DI)与控制反转(IoC)的含义不同,描述不同的概念
B. 在传统模式下,调用者通常会采用“new 被调用者”的代码方式来创建对象,这种方式会导致调用者与被调用者之间的耦合性增加,不利于后期项目的升级和维护
C. 在使用Spring框架之后,控制权由应用代码转移到了Spring容器,控制权发生了反转,这就是Spring的控制反转
D. 从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,相当于为调用者注入了依赖的实例,这就是Spring的依赖注入
正确答案:A
答案解析:依赖注入和控制反转是从不同角度来描述了同一件事情,见教材88页
4. (单选题)<bean id="user" class="com.itheima.User"> <constructor-arg name="id" value="1"></constructor-arg> <constructor-arg name="name" value="张三"></constructor-arg> <constructor-arg name="password" value="123"></constructor-arg> </bean> 关于以上代码段,下列选项中描述错误的是( )。
A. <bean>元素实例化实体类
B. <bean>元素中的class属性指定待实例化的相对路径类名
C. <constructor-arg>元素为实体类中的属性赋值
D. <constructor-arg>元素中的name属性指定参数
正确答案:B
答案解析:class指定对象所属类的(全路径)全限定名
5. (单选题)Spring容器默认的作用域是( )。
A. prototype
B. request
C. session
D. singleton
正确答案:D
答案解析:默认为单例模式
6. (单选题)实例工厂实例化Bean时,指向为Bean配置的实例工厂的属性是( )。
A. factory-method
B. factory-methods
C. factory-bean
D. factory-name
正确答案:C
答案解析:factory-bean指向配置的实例工厂factory-method指向使用工厂中的哪个方法
7. (单选题)下列选项中,关于Spring注解的描述错误的是( )。
A. @Autowired指定要自动装配的对象
B. @Repository指定要自动装配的对象名称
C. @Service指定一个业务逻辑组件 Bean
D. @Controller指定一个控制器组件Bean
正确答案:B
答案解析:@Repository表示dao层的bean
8. (单选题)下列选项中,对<bean>元素中的属性说法错误的是( )。
A. id 属性是<bean>元素的唯一标识符
B. name 属性可以为 Bean 指定名称,只能指定一个名称
C. class 属性可以指定 Bean 的具体实现类
D. scope 属性用于设定 Bean 实例的作用范围
正确答案:B
答案解析:name可以指定多个名称,用逗号或分号隔开,见教材p94
9. (单选题)Spring容器中用于监控Bean对象初始化节点的注解是( )。
A. @PostConstruct
B. @PreDestroy
C. @GetConstruct
D. @Destroy
正确答案:A
答案解析:见教材106页
10. (单选题)以下有关Spring常用的注解说明错误的是( )。
A. @Autowired指定要注入的对象
B. @Repository指定一个数据访问组件Bean,用于将数据访问层的类标识为Spring 中的Bean,功能上等同于@Component
C. @Service指定一个业务逻辑组件Bean,用于将业务逻辑层的类标识为Spring中的Bean,功能上等同于@Component
D. @Controller指定一个控制器组件Bean,用于将控制层的类标识为Spring中的Bean,功能上等同于@Component
正确答案:A
答案解析:Resource指定要注入的对象
11. (单选题)Spring容器支持多种形式的Bean的装配方式,错误的是()。
A. 基于XML的装配
B. 基于properties的装配
C. 基于注解的装配
D. 自动装配
正确答案:B
答案解析:bean的装配不包括基于properties文件的装配
12. (单选题)在ApplicationContext接口实现类中从类路径加载配置文件,实例化ApplicationContext接口的类方法是( )。
A. WebApplicationContext
B. AnnotationConfigApplicationContext
C. ClassPathXmlApplicationContext
D. FileSystemXmlApplicationContext
正确答案:C
答案解析:见教材94页
二. 多选题(共4题,16分)
13. (多选题)下列选项中,对Spring框架的优点描述正确的有( )。
A. 支持AOP编程
B. 支持声明式事务
C. 降低耦合性,方便开发
D. 降低Java EE API的使用难度
正确答案:ABCD
答案解析:见教材81页
14. (多选题)下列选项中,属于<constructor-arg>元素的属性的有( )。
A. value
B. type
C. id
正确答案:AB
答案解析:见教材95页
15. (多选题)以下关于Spring对Bean生命周期的管理说法正确的是( )。
A. Spring容器可以管理singleton作用域中Bean的生命周期
B. 在prototype作用域中, Spring容器只负责创建Bean实例,不会管理其生命周期
C. 每次客户端请求singleton作用域的Bean时,Spring容器都会创建一个新的实例,并且不会管那些被配置成singleton作用域的Bean的生命周期
D. 了解Bean的生命周期的意义就在于,可以在某个Bean生命周期的某些指定时刻完成一些相关操作
正确答案:ABD
答案解析:单例只会创建一次,见教材106页
16. (多选题)以下有关Bean的singleton作用域说法正确的有( )。
A. singleton是Spring容器默认的作用域
B. 当Bean的作用域为singleton时,Spring容器就只会存在一个共享的Bean实例
C. singleton作用域可以避免反复创建和销毁实例造成的资源消耗
D. Bean的作用域是通过<bean>元素的scope属性来指定的,该属性值有5个值,对应5种作用域
正确答案:ABCD
答案解析:见教材100页
三. 判断题(共7题,28分)
17. (判断题)控制反转(Inversion of Control,缩写为IoC)用来降低程序代码之间的耦合度。
A. 对
B. 错
正确答案:对
18. (判断题)Spring配置文件的名称可以自定义,通常在实际开发中,都会将配置文件命名为applicationContext.xml。
A. 对
B. 错
正确答案:对
19. (判断题)Spring的<bean>元素中包含一个autowire属性,可以通过设置autowire属性的值实现Bean的自动装配。
A. 对
B. 错
正确答案:对
20. (判断题)在Bean的两种作用域singleton和prototype中,Spring容器对Bean的生命周期的管理是相同的。
A. 对
B. 错
正确答案:错
答案解析:singleton作用域的Bean,Spring容器会管理其完整生命周期;而prototype作用域的Bean,Spring容器仅负责实例化,不管理其完整生命周期。
21. (判断题)Spring提供了3种基于XML的装配方式:设值注入、属性setter方法注入和构造方法注入。
A. 对
B. 错
正确答案:错
答案解析:Spring提供了两种基于XML的装配方式:属性setter方法注入和构造方法注入。
22. (判断题)构造方法实例化是通过Bean对应类中默认的无参构造方法来实例化Bean。
A. 对
B. 错
正确答案:对
答案解析:构造方法实例化通常使用带有参数的构造方法,而不是无参构造方法。
23. (判断题)FileSystemXmlApplicationContext 从文件系统加载配置文件,实例化 ApplicationContext 接口。
A. 对
B. 错
正确答案:对
答案解析:
见教材94页
四. 填空题(共2题,8分)
24. (填空题)<constructor-arg>元素用于指定参数值的属性是value和【】。
正确答案:ref
答案解析:value指定基本数据类型的常量值,ref指定另一个bean。
25. (填空题)在Spring配置文件中,Bean的作用域是通过<bean>元素的【】属性来指定的。
正确答案:scope
答案解析:scope属性用于指定Bean的作用域,如singleton、prototype等。
相关文章:
【基于轻量型架构的WEB开发】课程 作业3 Spring框架
一. 单选题(共12题,48分) 1. (单选题)以下有关Spring框架优点的说法不正确的是( )。 A. Spring就大大降低了组件之间的耦合性。 B. Spring是一种侵入式框架 C. 在Spring中,可以直接通过Spring配置文件管理…...

14.最长公共前缀-力扣(LeetCode)
题目: 解题思路: 解决本题的关键点是确定扫描的方式,大体上有两种方式:横向扫描和纵向扫描。 1、横向扫描:首先比较第一个字符串和第二个字符串,记录二者的公共前缀,然后用当前公共前缀与下一个…...

客户案例|智能进化:通过大模型重塑企业智能客服体验
01 概 述 随着人工智能技术的快速发展,客户对服务体验的期待和需求不断升级。在此背景下,大模型技术的崛起,为智能客服领域带来了创造性的变革。 在上篇文章《在后LLM时代,关于新一代智能体的思考》中有提到,智能客服…...
Flink Job更新和恢复
Checkpoints 的主要目的是为意外失败的作业提供恢复机制。 Savepoints的设计更侧重于可移植性和操作灵活性,尤其是在 job 变更方面。Savepoint 的用例是针对计划中的、手动的运维。例如,可能是更新你的 Flink 版本,更改你的作业图等等。 fli…...
读多写少业务中,MySQL如何优化数据查询方案?
小熊学Java站点:https://www.javaxiaobear.cn 编程资料合集:https://pqgmzk7qbdv.feishu.cn/base/QXq2bY5OQaZiDksJfZMc30w5nNb?from=from_copylink 看一看当面试官提及“在读多写少的网络环境下,MySQL 如何优化数据查询方案”时,你要从哪些角度出发回答问题??? 案例…...

Bugku CTF_Web——点login咋没反应
Bugku CTF_Web——点login咋没反应 进入靶场 随便输个试试 看来确实点login没反应 抓包看看 也没有什么信息 看了下源码 给了点提示 一个admin.css try ?12713传参试试 拿到一个php代码 <?php error_reporting(0); $KEYctf.bugku.com; include_once("flag.php&q…...

attention 注意力机制 学习笔记-GPT2
注意力机制 这可能是比较核心的地方了。 gpt2 是一个decoder-only模型,也就是仅仅使用decoder层而没有encoder层。 decoder层中使用了masked-attention 来进行注意力计算。在看代码之前,先了解attention-forward的相关背景知识。 在普通的self-atten…...
什么是HTTP,什么是HTTPS?HTTP和HTTPS都有哪些区别?
什么是 HTTP? HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种应用层协议,用于在互联网上进行数据通信。它定义了客户端(通常是浏览器)和服务器之间的请求和响应格式。HTTP 是无状态的…...

SkyWalking-安装
SkyWalking-简单介绍 是一个开源的分布式追踪系统,用于检测、诊断和优化分布式系统的功能。 支持 ElasticSearch、H2、MySQL、PostgreSql 等数据库 基于 ElasticSearch 的情况 ElasticSearch(ES) 安装 1、下载并解压 https://www.elastic…...

RabbitMQ运维
1. 单机多节点 1.1 搭建RabbitMQ ①安装RabbitMQ 略 ②确认RabbitMQ运⾏没问题 #查看RabbitMQ状态 rabbitmqctl status 节点名称: 端口号: 25672:Erlang分布式节点通信的默认端⼝, Erlang是RabbitMQ的底层通信协议.15672: Web管理界⾯的默认端⼝, 通过这个端⼝可以访问R…...
Go语言并发精髓:深入理解和运用go语句
Go语言并发精髓:深入理解和运用go语句 在Go语言的世界里,go语句是实现并发的核心,它简洁而强大,允许程序以前所未有的方式运行多个任务。本文将深入探讨go语句及其执行规则,揭示Go语言并发编程的内在机制,并提供实际案例帮助读者掌握其用法。 1. go语句的基本概念(Wha…...

基于STM32的智能家居系统:MQTT、AT指令、TCP\HTTP、IIC技术
一、项目概述 随着智能家居技术的不断发展,越来越多的家庭开始使用智能设备来提升生活质量和居住安全性。智能家居系统不仅提供了便利的生活方式,还能有效地监测家庭环境,保障家庭安全。本项目以设计一种基于STM32单片机的智能家居系统为目标…...

分糖果(相等分配)
题目:有n种不同口味的糖果,第i种糖果的数量为a[i],现在需要把糖果分给m个人。分给每个人糖果的数量必须是相等的,并且每个人只能选择一种糖果。也就是说,可以把一种糖果分给多个人,但是一个人的糖果不能有多…...
docker构建jdk11
# 建立一个新的镜像文件,配置模板:新建立的镜像是以centos为基础模板 # 因为jdk必须运行在操作系统之上 FROM centos:7.9.2009# 作者名 MAINTAINER yuanhang# 创建一个新目录来存储jdk文件 RUN mkdir /usr/local/java#将jdk压缩文件复制到镜像中&#…...
唐帕科技校园语音报警系统:通过关键词识别,阻止校园霸凌事件
校园霸凌问题已成为全球教育领域的严峻挑战,给受害者带来了身心上的长期创伤。然而,随着科技的发展,尤其是人工智能和语音识别技术的不断进步,我们开始看到创新性解决方案的出现。校园语音报警系统便是其中一种利用技术手段保护学…...
酒店行业数据仓库
重要名词: PMS:酒店管理系统CRS:中央预定系统客户:可以分为会员、散客(自行到店入住)、协议(与酒店长期合作,内部价)、中介预定:可以分为线上预定、线下预定…...

A029-基于Spring Boot的物流管理系统的设计与实现
🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…...
Python Day5 进阶语法(列表表达式/三元/断言/with-as/异常捕获/字符串方法/lambda函数
Python 列表推导式是什么 列表推导式是 Python 语言特有的一种语法结构,也可以看成是 Python 中一种独特的数据处理方式, 它在 Python 中用于 转换 和 过滤 数据。 其语法格式如下所示,其中 [if 条件表达式] 可省略。 [表达式 for 迭代变量…...

一文了解Android的核心系统服务
在 Android 系统中,核心系统服务(Core System Services)是应用和系统功能正常运行的基石。它们负责提供系统级的资源和操作支持,包含了从启动设备、管理进程到提供应用基础组件的方方面面。以下是 Android 中一些重要的核心系统服…...
Scala的Array(1)
Scala的Array表示长度不可变的数组,若需要定义可变数组需要倒包 import scala.collection.mutable.ArrayBuffer 下面是关于Array的一些用法: import scala.collection.mutable.ArrayBufferobject test29 { // //不可变数组 Array // def main(args:…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...