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也是错误的。