Spring-15 Spring Certified Professional 试题整理 ①

Spring Certified Professional 介绍

Spring Certified Professional 2022 的认证考试Spring Professional Develop (2V0-72.22) 是 60道题目,按照等级分方法获得 300 分即为及格。考生有 130 分钟完成考试,其中包括足够的时间让非英语母语人士去完成考试。

最低资格考生

考生建议至少有6到12个月的经验。考生既要有很强的概念理解能力,又有使用 Spring 框架的编程经验。需要了解 Spring 和 Spring Boot 的主要特性,包括用配置、数据访问,REST,AOP,自动配置,执行器,安全性和 Spring 测试框架来构建企业和 微服务应用程序。

考试范围
  • Spring Core

    • 解释 AOP 背后的概念及其解决的问题
    • 使用Spring AOP实现和部署Advices(通知)
    • 使用 AOP 切入点表达式
    • 解释不同类型的 Advice (通知)以及何时使用它们
    • 说明Spring Bean生命周期
    • 使用 BeanFactoryPostProcessor 和 BeanPostProcessor
    • 解释运行中 Spring 代理如何在起作用的
    • 描述Spring如何确定bean创建顺序
    • 按类型注入 bean 时避免问题
    • 解释和使用基于注解的配置
    • 讨论最佳配置选择
    • 使用@PostConstruct 和@PreDestroy
    • 解释和使用原型注解
    • 使用外部属性来控制配置
    • 演示配置文件的用途
    • 使用 Spring 表达式语言 (SpEL)
    • 使用Java代码定义Spring Beans
    • 访问应用上下文中的bean
    • 处理多个配置文件
    • 处理Bean之间的依赖关系
    • 解释和定义Bean作用域
    • Spring框架目标介绍
    • Java 配置
    • 属性和配置文件
    • 基于注解的配置和组件扫描
    • Spring Bean生命周期
    • Aspect Oriented Programming(面向切面编程 )
  • 数据管理

    • 使用Spring Boot实现一个Spring JPA应用
    • 为 JPA 创建 Spring Data Repositories
    • 描述和使用Spring事务管理
    • 配置事务的传播特性
    • 设置回滚规则
    • 在测试中使用事务
    • 使用和配置Spring的JdbcTemplate
    • 使用回调执行查询以处理结果集
    • 处理数据访问异常
    • Spring JDBC简介
    • 使用 Spring 进行事务管理
    • 用于后备存储的 Spring Boot 和 Spring Data
  • Spring MVC

    • 创建控制器来支持各种动作的 REST 端点
    • 利用 RestTemplate 调用 RESTful 服务
    • 解释如何使用 Spring Boot 创建 Spring MVC 应用程序
    • 描述 REST 请求的基本请求处理生命周期
    • 创建一个简单的 RESTful 控制器来处理 GET 请求
    • 配置部署
    • 使用 Spring Boot 的 Web 应用程序
    • REST 应用程序
  • 测试

    • 启用 Spring Boot 测试
    • 执行集成测试
    • 执行 MockMVC 测试
    • 执行切片测试
    • 使用 JUnit 5 编写测试
    • 使用 Spring 编写集成测试
    • 使用 Spring Profiles 配置测试
    • 扩展 Spring 测试以使用数据库
    • 测试Spring应用程序

    • 使用 SpringBoot 和 MockMVC 进行高级测试

  • 安全

    • 解释基本的安全概念
    • 使用Spring Security配置认证和授权
    • 定义方法级安全性
  • Spring Boot

    • 配置Actuator端点
    • 保证 Actuator HTTP端点的安全
    • 定义自定义指标
    • 定义自定义健康指标
    • 描述用于定义和加载属性的选项
    • 利用自动配置
    • 覆盖默认配置
    • Spring Boot特性讲解和使用
    • 描述Spring Boot依赖管理
    • Spring Boot 特 性 介 绍

    • Spring Boot 属性和自动配置

    • Spring Boot 执 行 器

参考资料
名称 版本 文档
Spring Framework Documentation Spring Framework 5.3 https://docs.spring.io/spring-framework/docs/current/reference/html/
Spring Core Technologies Spring Framework 5.3 https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#spring-core
Spring Data Access Spring Framework 5.3 https://docs.spring.io/spring-framework/docs/current/reference/html/data-access.html#spring-data-tier
Spring Framework Testing Spring Framework 5.3 https://docs.spring.io/spring-framework/docs/current/reference/html/testing.html#testing
Spring Framework Mvc Spring Framework 5.3 https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#spring-web
Spring Security Spring Framework 5.3 https://docs.spring.io/spring-security/reference/
Spring Data Jpa Spring Data 2021.0 https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference
Using Spring Boot Spring Boot 2.5 https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using
Spring Boot Futures Spring Boot 2.5 https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features
Spring Boot Actuator Spring Boot 2.5 https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator
Spring Boot Build Tools Plugins Spring Boot 2.5 https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins.html#build-tool-plugins

试题

  1. 如果传播行为是 Propagation.REQUIRES_NEW,哪个说法最能描述传播行为?(选择一项)
    • A.如果存在活动事务,则在嵌套事务中运行;如果没有活动事务,则抛出一个异常

    • B.如果已经存在事务,则支持该事务;如果没有活动事务,则抛出一个异常

    • C.总是启动新事务;如果已经存在活动事务,则暂停该事务

    • D.总是启动新事务;如果已经存在活动事务,则抛出一个异常

【正确答案】C


  1. 关于 Spring 对 JPA 的支持,以下哪个说法是正确的?(选择一项)
    (1) Spring 支持结合本地或全局事务管理 JPA PersistenceContexts
    (2) JPA 提供者是通过设置 EntityManagerFactoryBean 上的 vendor adapter 属性来指定的
    (3) 在管理本地事务时,JpaTransactionManager 使用 JPA EntityManagers 来完成这项工作
    • A.第(1)、(2)种说法是正确的

    • B.所有的说法都是正确的

    • C.这些说法都不正确

    • D.第(2)、(3)种说法是正确的

    • E.第(1)、(3)种说法是正确的

【正确答案】B


  1. 以下哪项是对@PropertySource 注解的最佳解释?(选择一项)
    • A.用于方便地从某个外部属性文件中查找并返回单个属性值

    • B.用于从某个外部来源向 Spring Environment 添加一组额外的 name/value 对

    • C.用于指定 Spring Boot 应用程序中 application. properties 文件的位置

    • D.Spring 框架中没有这样的注解

【正确答案】B


  1. 以下关于在 JUnit 集成测试中使用@Transactional 注解的说法中,哪项不是正确的的?(选择一项)
    • A.只有当 test 类或 test 方法被注解为@Commit(false)时,事务才会在测试后回滚出来

    • B.默认情况下,每次测试后,事务将自动回滚

    • C.用@Transactional 来注解 test 类,会使其所有的 test 方法在事务中运行

    • D.用@Transactional 来注解 test 方法,会使 test 方法在事务中运行

【正确答案】A


  1. 考虑下图中的事务服务层类。 @Transactional(timeout=60) public class ClientServiceImpl implements ClientService { @Transactional(timeout=30) public void update1(){} } } 对事务的 update1 方法应用什么超时设置?(选择一项)
    • A.这将无法编译。不能在类级声明 timeout,propagation 以及 isolation 等属性

    • B.30

    • C.60

    • D.90

    • E.这将无法编译。不能在方法级声明 timeout,propagation 以及 isolation 等属性

【正确答案】B


  1. 关于 Spring和单元测试,以下哪个说法是正确的?(选择一项)
    • A.Spring提取了现有的Mock框架

    • B.Spring提供了一个内部的Mock框架,所以不需要第三方的Mock框架,如 Mockito或 EasyMock

    • C.前两个答案是正确的

    • D.前两个答案都不正确

【正确答案】B


  1. 以下哪个说法最能说明使用 Spring Framework 在单元测试方面的好处?(选择一项)
    • A.你的 Java 代码通常在 Spring Framework 类上有依赖项,这些类的设计是为了使单元测试的工作更容易

    • B.Spring Framework 鼓励你按接口编程,这样可以更容易地在代码中存根或模拟出依赖项

    • C.Spring Framework 框架鼓励你尽可能地在一个测试中结合单元测试和集成测试

    • D.Application Context 在初始化时进行了大量的运行时检查,使得传统的单元测试变得不那么重要

【正确答案】B


  1. 默认情况下, Spring Boot 将自动在以下哪个地方查找属性文件?(选择一项)
    • A.与 Application 的主@Configuration 类名称相匹配的一个 properties 文件

    • B.application. properties 或 application.yml,通常位于根 classpath 中

    • C.config.properties 或 config.yml,通常位于根 classpath 中

    • D.Spring Boot 不会自动查找任何属性文件,除非特别指示(例如使用@PropertySource)

【正确答案】B


  1. 如果传播行为是 Propagation.REQUIRED,哪个说法最能描述传播行为:(选择一项)
    • A.如果存在活动事务,则在嵌套事务中执行;如果没有事务,则启动一个新的事务

    • B.如果已经存在事务,则在该事务中执行;如果没有事务,则在没有事务上下文的情况下执行

    • C.如果已经存在事务,则在该事务中执行;如果没有事务,则启动一个新的事务

    • D.如果已经存在事务,则在该事务中执行;如果没有活动事务,则抛出一个异常

【正确答案】C


  1. **考虑下图中的事务性服务层类。你使用的是 Spring 事务,它内部使用 Spring AOP 调用 update1 方法时,发生了什么事情? (选择一项) **
 @Entity 
public class Customer {
@Id
private Long id;
private String name;
private Date orderDate;
private String email;
}

A.public Customer getSingle(Long id);

B.public Customer findFirstByOrderDateBetween(Date d1, Date d2);

C.public Customer findFirstOrderDateMax();

D.public Customer findByEmail(String email);

【正确答案】B,D

JPA Repository : Auto-generated finders obey naming convention : find(First)By, can be GreaterThan / NotEquals / Between / Like


  1. 关于 Spring Boot 自动配置,以下哪些说法是正确的?(选择两项)
    • A.当缺少 bean 时,可能会发生自动配置。但当存在 bean 时,不会发生自动配置

    • B.自动配置是通过处理 Spring Boot 提供的自动配置类列表来执行的,每个自动配置类都使用不同的条件集

    • C.只有在应用级配置完成后,才会出现自动配置的情况

    • D.自动配置发生在应用级配置之前和之后

【正确答案】B,C

Auto-configuration classes processed after explicitly created beans are defined.


  1. 关于 Spring Data,以下哪些说法是正确的?(选择两项)
    • A.Spring Data 将 JPA 编程模型和 JPA 注解应用于 MongoDB、Neo4j 和 Redis 等非关系型数据存储中

    • B.Spring Data 是专门为 JPA 和关系型数据库访问而设计的

    • C.许多数据存储类型都有 Spring Data 实现,如 MongoDB、Neo4j 和 Redis

    • D.Spring Data 可以极大地减少数据访问所需的"boilerplate"(样板)代码量

【正确答案】C,D


关于 Spring Certified Professional 考试题目本篇只整理了一部分,后续会继续整理更多的题目。

DevX 会持续有趣的技术和见闻,如果你觉得本文对你有帮助希望你可以分享给更多的朋友看到。该文章会同步在微信公众号 【DevXJava】, 方便在微信客户端阅读。之后可能会制作一些视频讲解 spring 的源码,不过这都取决于忙不忙有没有更多空闲的时间,简单来说就是随缘的心态 : ) Hahaha . 昨天我路过 KFC 想去买个圣代吃,走进去我犹豫了几秒又忍住了,自言自语说哎别他妈吃了,好像人越胖就越喜欢吃甜的东西,话说有谁不爱吃甜甜的东西呢。


DevX 不止于技术


本篇文章来源于微信公众号: DevXJava



微信扫描下方的二维码阅读本文

此作者没有提供个人介绍
最后更新于 2023-05-28