SSM框架面试题
一、填空题(每小题2.5分,共10分)
1.依赖注入的作用就是在使用Spring框架创建对象时,动态的将其所依赖的对象注入到 Bean 组件中。
2.简单来说,BeanFactory就是一个管理Bean的工厂,它主要负责初始化各种Bean,并调用它们的 生命周期 方法。
3.Spring开发所需的JAR包分为两个部分: Spring框架包 和 第三方依赖包 。
4.在Spring的所有JAR包中,包含一个名为 Spring-tx.RELEASE.jar 的JAR包,该包就是Spring提供的用于事务管理的依赖包。
二、选择题(每小题3分,共30分)
1.以下关于Spring核心容器相关说法错误的是。(A)
A: Spring框架的所有功能都是通过其核心容器来实现的。
B: 创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理。
C: ApplicationContext不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持。
D: 通常在Java项目中,会采用通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器的方式,而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成。
2.以下有关Spring的四个基础包说法正确的是。(D)
A: Spring的四个基础包,它们分别对应Spring Web容器的四个模块。
B: Spring的四个基础包有spring-core.RELEASE.jar、spring-beans-.RELEASE.jar、spring-context-.RELEASE.jar和spring-aop-.RELEASE.jar。
C: spring-context-.RELEASE.jar是所有应用都要用到的JAR包,它包含访问配置文件以及进行IoC或者DI操作相关的所有类。
D: spring-core.RELEASE.jar包含Spring框架基本的核心工具类,Spring其它组件都要用到这个包里的类,是其它组件的基本核心。
3.以下有关Spring框架优点的说法正确的是。(B)
A: Spring具有简单、可测试和松耦合等特点,从这个角度出发,Spring就是应用于任何Java应用的开发中;
B: Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性
C: Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,杜绝了组件之间的耦合性
D: Spring增加了Java EE开发中一些API的使用难度
4.Spring的核心容器是其他模块建立的基础,以下哪个不是该容器的组成模块。(D)
A: Beans模块
B: Core模块
C: Context模块
D: AOP模块
5.下列选项中,不属于Spring框架优点的是。(A)
A: 提供强大的、可以有效减少页面代码的标签
B: 声明式事务的支持。
C: 方便解耦、简化开发
D: 方便集成各种优秀框架
6.Spring的<bean>元素中的autowire属性取值不包括以下。(D)
A: default
B: byName
C: byType
D: byId
7.以下有关Bean的装配方式说法正确的是。(C)
A: Spring容器支持多种形式的Bean的装配方式,如基于XML的装配、基于注解(Annotation)的装配和自动装配(其中最常用的是基于XML的装配);
B: Spring提供了3种基于XML的装配方式:设值注入、构造注入和属性注入;
C: 在Spring实例化Bean的过程中,Spring首先会调用Bean的默认构造方法来实例化Bean对象,然后通过反射的方式调用setter方法来注入属性值;
D: 设值注入要求一个Bean必须提供一个有参构造方法并且为需要注入的属性提供对应的setter方法。
8.以下哪些不属于Spring 4.3版本中Bean的作用域。(C)
A: application
B: request
C: response
D: globalSession
9.Spring中定义了一系列的注解,以下有关其常用的注解说明错误的是。(A)
A: @Autowired用于对Bean的属性变量、属性的setter方法及构造方法进行标注,配合对应的注解处理器完成Bean的自动配置工作,默认按照Bean的名称进行装配。
B: @Repository用于将数据访问层(DAO层)的类标识为Spring中的Bean。
C: @Service通常作用在业务层(Service层),用于将业务层的类标识为Spring中的Bean。
D: @Controller通常作用在控制层(如Spring MVC的Controller),用于将控制层的类标识为Spring中的Bean。
10.下列选项中,不属于Spring中实例化Bean的方式的是。(D)
A: 构造器实例化
B: 静态工厂方式实例化
C: 实例工厂方式实例化
D: 抽象方法实例化
三、判断题(每小题3分,共30分)
1.基于XML方式的声明式事务管理是通过在配置文件中配置事务规则的相关声明来实现的。(对)
2.编程式事务管理是通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚。(对)
3.Spring的事务管理简化了传统的事务管理流程,并且在一定程度上减少了开发者的工作量。(对)
4.Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于Annotation的方式。(对)
5.@Responsebody注解与@RequestMapping注解配合使用时,页面中将可以获取到方法的返回值。(对)
6.MyBatis映射文件中<mappers>元素是配置文件的根元素,它包含一个namespace属性,该属性为这个<mapper>指定了唯一的命名空间。(对)
7.使用MyBatis框架非常简单,只需在应用程序中引入MyBatis框架lib目录中的全部JAR包以及数据库驱动包即可进行项目运行。(错)
8.ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。(错)
9.MyBatis的更新操作也需要进行事务提交。(对)
10.创建的映射文件中的SQL语句要以面向对象的写法进行书写。(错)
四、简答题(每小题30分,共30分)
1.Spring依赖注入通常有哪些实现方式,列举并分别进行说明。
答:Spring的实现方式通常有两种:一种是setter方法注入,一种是构造方法注入。
属性setter方法注入是指IoC容器使用setter方法来注入被依赖的实例。通过调用无参构造或者无参静态方法实例化Bean后,调用该Bean的setter方法,即可实现基于setter方法的依赖注入
构造方法注入是指IoC容器使用构造方法来注入被依赖的实例。基于构造方法的注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖
面试题库连接:https://wenku.baidu.com/view/d0b9221f9f3143323968011ca300a6c30d22f1e0.html