logo资料库

《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》线下题库.docx

第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
资料共35页,剩余部分请下载后查看
第1章Spring的基本应用
习题
答案
第2章Spring中的Bean
习题
答案
第3章Spring AOP
习题
答案
第4章Spring的数据库开发
习题
答案
第5章Spring的事务管理
习题
答案
第6章初识MyBatis
习题
答案
第7章MyBatis的核心配置
习题
答案
第8章动态SQL
习题
答案
第9章MyBatis的关联映射
习题
答案
第10章MyBatis与Spring的整合
习题
答案
第11章Spring MVC入门
习题
答案
第12章Spring MVC的核心类和注解
习题
答案
第13章数据绑定
习题
答案
第14章JSON数据绑定和RESTful支持
习题
答案
第15章拦截器
习题
答案
第16章文件上传和下载
习题
答案
第17章SSM框架整合
习题
答案
第18章BOOT客户管理系统
习题
答案
第 1 章 Spring 的基本应用 习题 一、填空题 1. 依赖注入的作用就是在使用 Spring 框架创建对象时,动态的将其所依赖的对象注入到 【 】组件中。 2. 在使用 Spring 框架之后,对象的实例不再由调用者来创建,而是由【 】来创建,Spring 容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。 3. 在 Spring 入门程序中只需将 Spring 的 4 个基础包以及【 】的 JAR 包复制到 lib 目录 中,并发布到类路径下即可。 4. 简单来说,BeanFactory 就是一个管理 Bean 的工厂,它主要负责初始化各种 Bean,并调用 它们的【 】方法。 5. Spring 开发所需的 JAR 包分为两个部分:【 】和【 】。 二、判断题 1. Spring 中基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个 依赖。( ) 2. 通 常 在 Java 项 目 中 , 会 采 用 通 过 FileSystemXmlApplicationContext 类 来 实 例 化 ApplicationContext 容器的方式。( ) 3. 初学者学习 Spring 框架时,只需将 Spring 的 4 个基础包以及 commons-logging.jar 复制到项 目的 lib 目录,并发布到类路径中即可。( ) 4. 依赖注入的作用就是在使用 Spring 框架创建对象时,动态的将其所依赖的对象注入到 Bean 组件中。( ) 5. Spring 框架采用的是分层架构,它一系列的功能要素被分成 20 个模块。( ) 三、选择题 1. 以下关于 Spring 核心容器相关说法错误的是。( ) A: Spring 框架的所有功能都是通过其核心容器来实现的。 B: 创建 BeanFactory 实例时,需要提供 Spring 所管理容器的详细配置信息,这些信息通常 采用 XML 文件形式来管理。 C: ApplicationContext 不仅包含了 BeanFactory 的所有功能,还添加了对国际化、资源访问、 事件传播等方面的支持。 D: 通 常 在 Java 项 目 中 , 会 采 用 通 过 ClassPathXmlApplicationContext 类 来 实 例 化 ApplicationContext 容器的方式,而在 Web 项目中,ApplicationContext 容器的实例化工作会 交由 Web 服务器来完成。 2. 以下有关 Spring 的四个基础包说法正确的是。( ) 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 框架优点的说法正确的是。( ) A: Spring 具有简单、可测试和松耦合等特点,从这个角度出发,Spring 就是应用于任何 Java 应用的开发中; B: Spring 提供了对 AOP 的支持,它允许将一些通用任务,如安全、事务、日志等进行集中 式处理,从而提高了程序的复用性 C: Spring 就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给 Spring 容 器管理,杜绝了组件之间的耦合性 D: Spring 增加了 Java EE 开发中一些 API 的使用难度 4. Spring 的核心容器是其他模块建立的基础,以下哪个不是该容器的组成模块。( ) A: Beans 模块 B: Core 模块 C: Context 模块 D: AOP 模块 5. 下列选项中,不属于 Spring 框架优点的是。( ) A: 提供强大的、可以有效减少页面代码的标签 B: 声明式事务的支持。 C: 方便解耦、简化开发 D: 方便集成各种优秀框架 四、简答题 1. Spring 依赖注入通常有哪些实现方式,列举并分别进行说明。 答案 一、填空题 1. Bean 2. Spring 容器 3. 4. 生命周期 5. Spring 框架包、第三方依赖包 commons-logging 二、判断题 1. 对 2. 错 3. 对 4. 对 5. 对 三、选择题 1. A 2. D 3. B 4. D 5. A 四、简答题 Spring 的实现方式通常有两种,一种是属性 setter 方法注入,另一种是构造方法注入。属性 setter
方法注入是指 IoC 容器使用 setter 方法来注入被依赖的实例。通过调用无参构造器或无参静态工厂方 法实例化 Bean 后,调用该 Bean 的 setter 方法,即可实现基于 setter 方法的依赖注入。构造方法注入 是指 IoC 容器使用构造方法来注入被依赖的实例。基于构造方法的依赖注入通过调用带参数的构造 方法来实现,每个参数代表着一个依赖。 第 2 章 Spring 中的 Bean 习题 一、填空题 1. 所谓自动装配,就是将一个 Bean 自动的注入到到其他 Bean 的【 2. @Controller 通常作用在控制层,如 Spring MVC 的【 】中。 】,用于将控制层的类标识为 Spring 中的 Bean,其功能与@Component 相同。 3. 【 】注解用于将数据访问层(DAO 层)的类标识为 Spring 中的 Bean,其功能与 @Component 相同。 4. 对于【 】作用域的 Bean,Spring 只负责创建,当容器创建了 Bean 实例后,Bean 的 实例就交给客户端代码来管理,Spring 容器将不再跟踪其生命周期。 5. 实例工厂方式采用直接创建 Bean 实例的方式,在配置文件中,需要实例化的 Bean 是通过 】属性指向配置的实例工厂,然后使用 factory-method 属性确定使用工厂中的哪 【 个方法。 二、判断题 1. @Component 注解用于描述 Spring 中的 Bean,它是一个泛化的概念,仅仅表示一个组件, 并且可以作用在任何层次,使用时只需将该注解标注在相应方法上即可。( ) 2. Spring 提供了 3 种基于 XML 的装配方式:设值注入、构造注入和属性注入。( ) 3. 每次客户端请求 singleton 作用域的 Bean 时,Spring 容器都会创建一个新的实例,并且不会 管那些被配置成 singleton 作用域的 Bean 的生命周期。( ) 4. Spring 中使用 prototype 定义的 Bean 在 Spring 容器中将只有一个实例,也就是说,无论有多 少个 Bean 引用它,始终将指向同一个对象。( ) 5. 对于 prototype 作用域的 Bean,Spring 只负责创建,当容器创建了 Bean 实例后,Bean 的实 例就交给客户端代码来管理,Spring 容器将不再跟踪其生命周期。( ) 三、选择题 1. Spring 的元素中的 autowire 属性取值不包括以下。( ) A: default B: byName C: byType D: byId 2. 以下有关 Bean 的装配方式说法正确的是。( ) A: Spring 容器支持多种形式的 Bean 的装配方式,如基于 XML 的装配、基于注解(Annotation) 的装配和自动装配(其中最常用的是基于 XML 的装配); B: Spring 提供了 3 种基于 XML 的装配方式:设值注入、构造注入和属性注入; C: 在 Spring 实例化 Bean 的过程中,Spring 首先会调用 Bean 的默认构造方法来实例化 Bean 对象,然后通过反射的方式调用 setter 方法来注入属性值; D: 设值注入要求一个 Bean 必须提供一个有参构造方法并且为需要注入的属性提供对应的 setter 方法。 3. 以下哪些不属于 Spring 4.3 版本中 Bean 的作用域。( )
A: application B: request C: response D: globalSession 4. Spring 中定义了一系列的注解,以下有关其常用的注解说明错误的是。( ) A: @Autowired 用于对 Bean 的属性变量、属性的 setter 方法及构造方法进行标注,配合对应 的注解处理器完成 Bean 的自动配置工作,默认按照 Bean 的名称进行装配。 B: @Repository 用于将数据访问层(DAO 层)的类标识为 Spring 中的 Bean。 C: @Service 通常作用在业务层(Service 层),用于将业务层的类标识为 Spring 中的 Bean。 D: @Controller 通常作用在控制层(如 Spring MVC 的 Controller),用于将控制层的类标识 为 Spring 中的 Bean。 5. 下列选项中,不属于 Spring 中实例化 Bean 的方式的是。( ) A: 构造器实例化 C: 实例工厂方式实例化 D: 抽象方法实例化 B: 静态工厂方式实例化 四、简答题 1. 请简述基于 XML 的装配方式中设值注入的要求。 答案 一、填空题 1. Property 2. Controller 3. @Repository 4. prototype 5. factory-bean 二、判断题 1. 错 2. 错 3. 错 4. 错 5. 对 三、选择题 1. D 2. C 3. C 4. A 5. D 四、简答题 Spring 中基于 XML 的装配方式中设值注入需要满足以下两点要求:​ 1、Bean 类必须提供一个默认的无参构造方法。 2、Bean 类必须为需要注入的属性提供对应的 setter 方法。
第 3 章 Spring AOP 习题 一、填空题 1. AspectJ 框架中注解【 】用于定义切入点表达式,在使用时还需定义一个包含名字和 任意参数的方法签名来表示切入点名称。 2. 在 Spring 配置文件中,子元素的 pointcut-ref 属性用于指定一个已经存在的 【 】。 3. 在 Spring 的配置文件中,配置切面使用的是【 4. 在 Spring 中,使用【 5. AOP 术语中【 】元素。 】是创建 AOP 代理的基本方式。 】表示 AOP 框架在特定的切入点执行的增强处理,即在定义好的切入 点处所要执行的程序代码。 二、判断题 1. 如果在同一个连接点有多个通知需要执行,那么在同一切面中,目标方法之前的前置通知 和环绕通知的执行顺序是未知的,目标方法之后的后置通知和环绕通知的执行顺序也是未 知的。( ) 2. AspectJ 框架中的注解@After 用于定义最终 final 通知,不管是否异常,该通知都会执行。( ) 3. Spring 配置文件中的元素下可以包含多个元素,一个元素 中又可以包含属性和子元素,其子元素包括。 ( ) 4. Spring 中的 AOP 代理默认就是使用 CGLIB 代理的方式来实现的。( ) 5. Spring 3.0 以后,Spring AOP 引入了对 AspectJ 的支持,并允许直接使用 AspectJ 进行编程, 而 Spring 自身的 AOP API 也尽量与 AspectJ 保持一致。( ) 三、选择题 1. 以下不属于 ProxyFactoryBean 类中的常用可配置属性的是。( ) A: target B: proxyInterfaces C: targetClass D: interceptorNames 2. 以下哪种类型不是 Spring 中的通知类型。( ) A: 异常通知 B: 前置通知 C: 后置通知 D: 最终通知 3. 关于 AspectJ 注解的介绍,说法错误的是。( ) A: @Aspect 用于定义一个切面 B: @Pointcut 用于定义切入点表达式 C: @Before 用于定义前置通知,相当于 BeforeAdvice D: @After 用于定义后置通知,相当于 AfterReturningAdvice 4. 以下有关 CGLIB 代理相关说法正确的是。( ) A: CGLIB 代理的使用非常简单,但它还有一定的局限性——使用动态代理的对象必须实现
一个或多个接口。 B: 如果要对没有实现接口的类进行代理,那么可以使用 CGLIB 代理。 C: CGLIB 是一个高性能开源的代码生成包,在使用时需要另外导入 CGLIB 所需要的包。 D: Spring 中的 AOP 代理,可以是 JDK 动态代理,也可以是 CGLIB 代理。 5. 以下关于 Spring AOP 的介绍错误的是。( ) A: AOP 的全称是 Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)。 B: AOP 采取横向抽取机制,将分散在各个方法中的重复代码提取出来,这种采用横向抽取 机制的方式,采用 OOP 思想是无法办到的。 C: 虽然 AOP 是一种新的编程思想,采取横向抽取机制,是 OOP 的升级替代品。 D: 目前最流行的 AOP 框架有两个,分别为 Spring AOP 和 AspectJ。 四、简答题 1. 请对 Spring 的通知类型进行简要说明。 答案 一、填空题 1. @Pointcut 2. 切入点名称 3. 4. ProxyFactoryBean 5. Advice 二、判断题 1. 对 2. 对 3. 对 4. 错 5. 错 三、选择题 1. C 2. D 3. D 4. C 5. C 四、简答题 Spring 中主要包含 5 种通知类型,分别是环绕通知,前置通知,后置通知,异常通知和引介通 知。其中,环绕通知表示在目标方法执行前后实施增强,可以应用于日志、事务管理等功能。前置 通知表示在目标方法执行前实施增强,可以应用于权限管理等功能。后置通知表示在目标方法执行 后实施增强,可以应用于关闭流、上传文件、删除临时文件等功能。异常通知表示在方法抛出异常 后实施增强,可以应用于处理异常记录日志等功能。引介通知表示在目标类中添加一些新的方法和 属性,可以应用于修改老版本程序(增强类)。
第 4 章 Spring 的数据库开发 习题 一、填空题 JdbcTemplate 类中还提供了大量的【 JdbcTemplate 类中的【 1. 2. 3. 【 】方法来处理各种对数据库表的查询操作。 】方法可以完成插入、更新和删除数据的操作。 】就是 Junit4 用来测试的注解,要测试哪个方法,只需要在相应测试的方法上添加 4. 5. 此注解即可。 JDBC 连接数据库时需要 4 个基本属性,包括有【 JdbcTemplate 类的继承关系十分简单。它继承自抽象类【 接口。 】、url、username 和 password。 】,同时实现了 JdbcOperations 二、判断题 1. 在使用 Junit 进行单一测试时,JUnit 视图窗口的进度条为绿色表明运行结果正确;如果进度 条为红色则表示有错误,并且会在窗口中显示所报的错误信息。( ) 2. 定义 jdbcTemplate 时,需要将 dataSource 注入到 jdbcTemplate 中。( ) 3. JdbcOperations 接口定义了在 JdbcTemplate 类中可以使用的操作集合,包括添加、修改、查 询和删除等操作。( ) JdbcTemplate 类中还提供了大量的 query()方法来处理各种对数据库表的查询操作。( ) 4. 5. 在 JdbcTemplate 类中,提供了大量的更新和查询数据库的方法,我们就是使用的这些方法 来操作数据库的。( ) 三、选择题 1. Spring JDBC 模块主要由 4 个包组成,其中不包括。( ) 2. 3. A: core(核心包) B: dataSource(数据源包) C: driverClass(数据库驱动包) D: support(支持包) JdbcTemplate 的直接父类是。( ) A: JdbcAccessor B: JdbcOperations C: JdbcSupper D: Object JdbcTemplate 类包含在 Spring JDBC 模块的哪个包中。( ) A: 核心包 B: 数据源包 C: 对象包 D: 支持包 4. 下面关于 update()方法描述错误的是。( ) A: update()方法可以完成插入、更新、删除和查询数据的操作 B: 在 JdbcTemplate 类中,提供了一系列的 update()方法 C: update()方法执行后,会返回受影响的行数 D: update()方法返回的参数是 int 类型
5. 下面描述中,关于 query()方法说法错误的是。( ) A: List query(String sql, RowMapper rowMapper)会执行 String 类型参数提供的 SQL 语句,并 通过 RowMapper 返回一个 List 类型的结果。 PreparedStatementSetter pss, RowMapper rowMapper ) 会 根 据 B: List query(String sql, String 类型参数提供的 SQL 语句创建 PreparedStatement 对象,通过 RowMapper 将结果返回 到 List 中。 C: List query(String sql, Object[] args, RowMapper rowMapper)会将 args 参数绑定到 SQL 语 句中,并通过 RowMapper 返回一个 Object 类型的单行记录。 D: queryForList(String sql,Object[] args, class elementType)可以返回多行数据的结果, 但必须是返回列表,elementType 参数返回的是 List 元素类型。 四、简答题 1. 请简述如何使用 Junit 对程序中的方法进行测试。 答案 一、填空题 1. query() 2. update() 3. @Test 4. driverClassName 5. JdbcAccessor 二、判断题 1. 对 2. 对 3. 对 4. 对 5. 对 三、选择题 1. C 2. A 3. A 4. A 5. C 四、简答题 使用 JUnit 对程序中的方法进行测试时的步骤如下: 1、先创建一个普通测试方法,并在方法上添加单元测试的注解@Test; 2、添加@Test 注解后,在注解处会报错,将鼠标移动至@Test 注解处,会弹出错误提示框,单 击提示框中的 Add JUnit4 library to the build path 后,Eclipse 会自动将 JUnit4 的支持包加入到项目中; 3、在执行程序时,只需使用鼠标右键单击测试方法,在弹出的快捷菜单中选择 Run As 中的 JUnit Test 选项来运行测试方法即可。
分享到:
收藏