前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring IOC相关例题及解析

Spring IOC相关例题及解析

作者头像
海拥
发布2021-08-23 15:20:48
1.5K0
发布2021-08-23 15:20:48
举报
文章被收录于专栏:全栈技术

1、(单选题)下列关于Spring特性中IOC描述错误的是:()

A.IOC就是指程序之间的关系由程序代码直接操控。 B.所谓“控制反转”,是指控制权由应用代码转到外部容器,控制权的转移 C.IOC将控制创建的职责搬进了框架中;并把它从应用代码脱离开来 D.当使用Spring的IOC容器时只需指出组件需要的对象,在运行时Spring的IOC容器会根据XML配置数据提供给它。

【正确答案】A 【答案解析】IOC是控制反转,是将代码中的操控权转到容器里去控制

2、(单选题)Spring的组成一共有( )块组成

A.1 B.3 C.5 D.7 【正确答案】D 【答案解析】Spring框架有七个模块组成,分别是: Spring 核心容器(Core) Spring AOP Spring ORM Spring DAO Spring WEB Spring上下文(Context) Spring MVC

3、(单选题)下面关于spring描述错误的是:( )

A.Spring支持可插入的事务管理器,使事务划分更轻松,同时无需处理底层的问题。 B.Spring事务管理的通用抽象层还包括JTA策略和一个JDBC DataSource。 C.Spring的事务支持且依赖于Java EE环境。 D.Spring事务语义通过AOP应用于 POJO,通过XML或Java SE 5注释进行配置。 【正确答案】C 【答案解析】Spring的事务支持并不依赖于Java EE环境

4、(多选题)IOC有哪几种注入方式()

A.构造函数注入 B.属性注入 C.接口注入 D.以上都不对 【正确答案】A,B,C 【答案解析】IOC具有三种注入方式,分别是构造函数注入、属性注入和接口注入。

5、(多选题)对于以下配置,说法正确的是( )

代码语言:javascript
复制
<bean id="eb1" class="ioc.ExampleBean" 
		init-method="init"

destroy-method=“destroy” lazy-init=“true”> A.init-method用于指定初始化方法。 B.destroy-method用于指定销毁方法。 C.所有bean中的初始化方法名必须命名为init。 D.lazy-init如果为true,表示延迟实例化。 【正确答案】A,B,D 【答案解析】考查容器如何管理bean的生命周期。初始化方法和销毁方法的命名无特定要求,故C是错误的。

6、(多选题)以下这段配置,说法正确的是( )

代码语言:javascript
复制
<bean id="bar1" class="ioc.autowire.Bar" autowire="byName"/>

A.容器会采取自动装配的方式来建立依赖关系。 B.byName指定的是查找与属性名称一致的bean,调用set方法来完成注入。 C.byName有可能找到多个符合条件的bean,会出错。 D.autowire的值还可以是byType和constructor。 【正确答案】A,B,D 【答案解析】考查DI的基础知识,容器可以依据属性名称或者类型来完成自动装配,如果值为byName,容器会查找与属性名称一致的bean,并调用对应的set方法来完成注入。 因为本题中bar1是bean的id,所以是唯一的,所以不可能找到多个符合要求的bean。

7、(多选题)以下这段配置,说法正确的是( )

代码语言:javascript
复制
<util:properties id="config" location="classpath:config.properties"/>
<bean id="db" class="ioc.common.DemoBean">
		<property name="brand" value="#{mp.brand}"/>
		<property name="interest" value="#{user.interest[1]}"/>
		<property name="city" value="#{user.cities[1]}"/>
		<property name="score" value="#{user.scores.english}"/>
		<property name="pwd" value="#{user.info.pwd}"/>
		<property name="pagesize" value="#{config.pagesize}"/>
		<property name="type" value=""/>
</bean>

A.spring表达式语法非常类似el表达式。 B.spring表达式可以读取bean或者集合中的数据。 C.#{user.interest[1]} 表示读取id为user的bean的inerest属性,该属性值是一个List集合,1表示集合中的下标。 D.value="“是错误的用法。 【正确答案】A,B,C 【答案解析】考查spring表达式的用法,value=”"表示赋值为空字符串,是正确的。

8、(多选题)下列关于Spring容器说法正确的是( ) A.在Spring中,任何的Java类和JavaBean都可以被当成Bean处理,这些Bean通过容器管理和使用。 B.Spring容器实现了IOC和AOP机制,这些机制可以简化Bean对象创建和Bean对象之间的解耦。 C.Spring容器提供了运行Servlet所需要的环境。 D.Spring容器有BeanFactory和ApplicationContext等类型。 【正确答案】A,B,D 【答案解析】此题目考查的是对Spring容器的基本认识。运行Servlet需要符合Servlet规范的容器,比如Tomcat。 Spring容器是Spring框架的核心组成模块,其它选项从各个方面描述了Spring容器的一些特点,故是正确的。

9、(多选题)以下这段配置,说法正确的是( )。

代码语言:javascript
复制
<bean id="mp" class="ioc.set.MobilePhone">
		<property name="brand" value="华为mate8"/>
		<property name="cpu" value="麒麟"/>
		<property name="ram" value="2G"/>
</bean>

A.这里采用了set方式注入。 B.这里采用了构造器方式注入。 C.MobilePhone类一定有setBrand方法。 D.MobilePhone类一定有brand属生。 【正确答案】A,C 【答案解析】注意,依据以上配置,spring容器会去调用setBrand方法,但并不表名MobilePhone类一定具有brand属性。以上配置不属于构造方法注入方式。

10、(多选题)下面关于Spring的说法正确的是( ) A.Spring是一个重量级的框架 B.Spring是一个轻量级的框架 C.Spring是一个包含IOC和AOP两大特性的容器 D.Spring是一个入侵式的框架 【正确答案】B,C 【答案解析】Spring是一个轻量级框架,主要的两个模块是Spring IOC和Spring AOP

11、(多选题)下面关于IOC的理解,正确的是( ) A.控制反转 B.对象被动的接受依赖类 C.对象主动的去找依赖类 D.一定要用接口 【正确答案】A,B 【答案解析】Spring IOP即“控制反转”,对象只是被动的接收依赖对象

12、(多选题)下列关于Spring说法正确的有( )。 A.Spring是一个开源的轻量级的应用开发框架。 B.Spring为系统提供了一个整体解决方案。 C.Spring是一种开发语言。 D.Spring提供的IOC和AOP功能,可以将组件的耦合度降至最低,即解耦,便于系统日后的维护和升级。 【正确答案】A,B,D 【答案解析】此题目考查的是对Spring框架的基本认识。 Spring是应用开发框架,而不一种编程语言,所以C是错误的。其它选项是从不同角度描述Spring框架的优点,都是正确的。

13、(多选题)下列关于bean的生命周期,说法正确的是( )。 A.每个bean都必须提供相应的生命周期方法。 B.销毁方法只适用于singleton模式的bean。 C.销毁方法可以运行多次。 D.初始化方法只会执行一次。 【正确答案】B,D 【答案解析】考查容器如何管理bean的生命周期。在设计bean时,依据实际业务的需要,可以为bean提供相应的生命周期方法,比如在初始化方法当中完成资源加载等类似的逻辑,在销毁方法中释放资源。因此bean当中是否有生命周期相关的方法,完成取决于实际业务需要,并不是必须的,所以答案A是错误的。销毁方法用于释放资源,只需要执行一次,所以答案C也是错误的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档