当前位置: 首页 > article >正文

【基于轻量型架构的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.kler.cn/a/393459.html

相关文章:

  • VMware Workstation虚拟机网络模式
  • mac中idea菜单工具栏没有git图标了
  • flask-admin的modelview 实现list列表视图中扩展修改状态按钮
  • C++23新特性解析:[[assume]]属性
  • HTMLCSS:惊!3D 折叠按钮
  • kubeadm搭建k8s集群
  • 前端基础的讲解-JS(10)
  • Scala学习记录,case class,迭代器
  • 如何制作代购系统:从概念到实现
  • 微服务day06
  • 刷算法题(C++)
  • LeetCode【0025】K个一组翻转链表
  • 【工具插件类教学】在 Unity 中使用 iTextSharp 实现 PDF 文件生成与导出
  • Netty实现WebSocket Client三种典型方式
  • 【Springboot】黑马大事件笔记 day1
  • 【go从零单排】HTTP客户端和服务端
  • 群控系统服务端开发模式-应用开发-前端退出功能
  • 丹摩征文活动|FLUX.1 和 ComfyUI:从部署到上手,轻松驾驭!
  • apk反编译修改教程系列-----apk应用反编译中AndroidManifest.xml详细代码释义解析 包含各种权限 代码含义
  • CyclicBarrier复杂场景示例
  • ThinkServer SR658H V2服务器BMC做raid与装系统
  • TCP 为什么是流协议而不是包协议
  • SpringBoot框架在共享汽车管理中的应用
  • 使用elementUI实现表格行拖拽改变顺序,无需引入外部库
  • 基于SpringBoot智慧社区管理平台
  • 力扣(LeetCode)LCR 179. 查找总价格为目标值的两个商品(Java)