【基于轻量型架构的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等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/14717.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Jmeter中的监听器(三)

9--断言结果 功能特点 显示断言结果&#xff1a;列出所有断言的结果&#xff0c;包括通过和失败的断言。详细信息&#xff1a;显示每个断言的详细信息&#xff0c;如断言类型、实际结果和期望结果。错误信息&#xff1a;显示断言失败时的错误信息&#xff0c;帮助调试。颜色编…

七牛云上传图片成功,但是无法访问显示{error : document not found}

上传图片成功&#xff0c;但是访问不了的问题&#xff0c;直接把地址放进浏览器显示{error : document not found}&#xff0c;直接访问 DCNF 404是符合预期的&#xff0c;因为还没有去空间复制外链&#xff0c;要访问实际存在的资源才可以的. 配置区域和访问域名 设置没问题了…

虚拟与现实交融,线上元宇宙会议应用场景有哪些?

随着科技的飞速发展&#xff0c;元宇宙技术正逐渐渗透到我们生活的各个领域&#xff0c;为企业会议、学术会议、行业展会以及文化娱乐等带来了前所未有的变革。线上元宇宙会议打破了地域和物理空间的限制&#xff0c;让人们能够在虚拟世界中实现跨时空的交互与合作。本文将深入…

构建高效在线商店:Spring Boot框架应用

1 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这样的大环境让那些止步不前&#…

鸿蒙网络编程系列47-仓颉版UDP客户端

1. UDP通讯简介 本系列的第1篇文章《鸿蒙网络编程系列1-UDP通讯示例》中基于ArkTS语言在API 9的环境下演示了UDP通讯的基础用法&#xff0c;本文将使用仓颉语言在API 12的环境中实现类似的功能。这可能听起来有点不太现实&#xff0c;在ArkTS语言下可以利用kit.NetworkKit下的…

Redis与IO多路复用

1. Redis与IO多路复用概述 1.1 Redis的单线程特性 Redis是一个高性能的键值存储系统&#xff0c;其核心优势之一便是单线程架构。在Redis 6.0之前&#xff0c;其所有网络IO和键值对的读写操作都是由一个主线程顺序串行处理的。这种设计简化了多线程编程中的锁和同步问题&…

HarmonyOS Next 组件或页面之间的所有通信(传参)方法总结

系列文章目录 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;上&#xff09; 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;下&#xff09; 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇&#xff08;上&#xff09; 【…

API接口:助力汽车管理与安全应用

随着汽车行业的飞速发展&#xff0c;越来越多的汽车管理技术被应用到交通安全和智慧交通系统中。在这一过程中&#xff0c;API接口起到了至关重要的作用。通过API接口&#xff0c;我们可以实现诸如车主身份验核、车辆信息查询等功能&#xff0c;从而为汽车智慧交通发展与安全应…

C哈的刷题计划之输出数字螺旋矩阵(1)

1、盲听C哈说 都说数据结构与算法是编程的核心&#xff0c;它们两个是内功与心法&#x1f600;&#xff0c;其它编程工具只是招式&#xff0c;学会了内功与心法&#xff0c;学习新事物&#xff08;这里特指层出不穷的IT技术&#xff09;就没有那么难了&#xff0c;实际上&#…

AD22Duplicate Net Names Wire问题

在验证的时候发现报了这个错误 我这个原理图都是用自定义的元件 只写在name引脚名字是会报这个错的 但是换成designator引脚标识就不会了 建议是name引脚名字和designator引脚标识都写 写成一样都行&#xff0c;就不会报这个错了&#xff0c;别空着

centos7上安装mysql

1.现查看虚拟机上有没有wget包&#xff0c;如果没有的话进行安装 yum install -y wget 2.进入MySQL :: Download MySQL Yum Repository下载mysql安装源 找到与linux相应的版本&#xff0c;复制地址&#xff0c;如果找不到地址&#xff0c;可以复制如下 3.下载mysql官方yum源 …

hadoop报错找不到主类

错误&#xff1a; (base) mpsmps3:~$ hadoop hadoop_map_redce-1.0-SNAPSHOT.jar MovieDriver /input/movies-to-be-predicted.txt Error: Could not find or load main class hadoop_map_redce-1.0-SNAPSHOT.jar解决办法&#xff1a; 1.输入命令 hadoop classpath配置好了ha…

使用 start-local 脚本在本地运行 Elasticsearch

警告&#xff1a;请勿将这些说明用于生产部署 本页上的说明仅适用于本地开发。请勿将此配置用于生产部署&#xff0c;因为它不安全。请参阅部署选项以获取生产部署选项列表。 使用 start-local 脚本在 Docker 中快速设置 Elasticsearch 和 Kibana 以进行本地开发或测试。 此设…

Day14 - CV项目实战:SAR飞机检测识别

论文原文&#xff1a; ​​​​​​SAR-AIRcraft-1.0:高分辨率SAR飞机检测识别数据集 - 中国知网 第一排的7张图片&#xff0c;普通人肉眼很难看出对应的是第二排的飞机。 还有上图里标注的飞机&#xff0c;外行根本看不明白&#xff0c;为什么这些是&#xff0c;其他的不是。…

Threejs 材质贴图、光照和投影详解

1. 材质和贴图 材质&#xff08;Material&#xff09;定义了物体表面的外观&#xff0c;包括颜色、光泽度、透明度等。贴图&#xff08;Textures&#xff09;是应用于材质的图像&#xff0c;它们可以增加物体表面的细节和真实感。 1.1材质类型 MeshBasicMaterial&#xff1a…

笔记整理—linux驱动开发部分(11)中断上下文

触摸屏分为两种&#xff0c;一种为电阻式触摸屏&#xff0c;另一种为电容式触摸屏。电阻式触摸屏&#xff08;x、x-、y、y-、AD&#xff09;有两种接口&#xff0c;一种为SOC自带的接口&#xff08;miscinput或platform&#xff09;&#xff0c;第二种为外部IC&#xff0c;通过…

网络编程示例之开发板测试

编译elf1_cmd_net程序 &#xff08;一&#xff09;设置交叉编译环境。 &#xff08;二&#xff09;查看elf1_cmd_net文件夹Makefile文件。查看当前编译规则&#xff0c;net_demo是编译整个工程&#xff0c;clean是清除工程。 &#xff08;三&#xff09;输入命令。 &#xff0…

【GD32】(一) 开发方式简介及标准库开发入门

文章目录 0 前言1 开发方式选择2 标准库模板的创建3 遇到的问题和解决方法 0 前言 因为项目关系&#xff0c;需要使用GD32。之前对此早有耳闻&#xff0c;知道这个是一个STM32的替代品&#xff0c;据说甚至可以直接烧录STM32的程序&#xff08;一般是同型号&#xff09;&#x…

Java NIO 核心知识总结

NIO 简介 在传统的 Java I/O 模型&#xff08;BIO&#xff09;中&#xff0c;I/O 操作是以阻塞的方式进行的。也就是说&#xff0c;当一个线程执行一个 I/O 操作时&#xff0c;它会被阻塞直到操作完成。这种阻塞模型在处理多个并发连接时可能会导致性能瓶颈&#xff0c;因为需…

Spring如何解决循环依赖的问题

Spring 如何解决循环依赖的问题 Spring 是通过三级缓存来解决循环依赖问题&#xff0c;第一级缓存里面存储完整的Bean实例&#xff0c;这些实例是可以直接被使用的&#xff0c;第二级缓存存储的是实例化后但是还没有设置属性值的Bean实例&#xff0c;也就是Bean里面的 依赖注入…