Spring-16 Spring Certified Professional ②

Spring-16 Spring Certified Professional ②

Spring-16 Spring Certified Professional ②

Spring 源码系列文章会遵循由浅入深,由易到难,由宏观到微观的原则,目标是尽量降低学习难度,而不是一上来就迷失在源码当中. 文章会从一个场景作为出发点,针对性的目的性极强的针对该场景对 Spring 的实现原理,源码进行探究学习。该系列文章会让你收获什么? 从对 Spring 的使用者成为 Spring 专家。该文章会同步在微信公众号 【DevXJava】, 方便在微信客户端阅读。

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

Spring-15 Spring Certified Professional 试题整理 ①

试题

  1. 关于 @TestPropertySource 注解以下哪项称述是正确的?
    • A. Java 系统属性的优先级高于从 @TestPropertySource 加载的属性
    • B. 如果使用 @TestPropertySource ,则不会加载定义 @PropertySource 的属性
    • C. @TestPropertySource 中定义的内联属性可用于覆盖属性文件中定义的属性
    • D. 默认情况下, @TestPropertySource 注解加载相对于项目根目录的属性文件
【正确答案】: C

  1. Spring Framework 如何支持程序化事务管理?
    • A. 通过可以提供一个 ApplicationContext 中声明为 bean 的 TransactionTemplate 类
    • B. Spring Framework 仅通过自动配置 UserTransaction 类来支持 JTA 环境中的程序化事务管理
    • C. Spring Framework 不支持程序化事务管理,仅支持基于注解的事务管理
    • D. 通过提供一个可以 @Autowired 到类中的自动配置的 TransactionTemplate 实例
【正确答案】: D

  1. 使用申明式事务管理,以下那种情况会导致事务默认回滚?
    • A. 当引发任何未捕获的未检查异常时
    • B. 当引发任何类型(检查或未检查)的异常时
    • C. 当引发任何未捕获的检查异常时
    • D. 仅当引发特定于 Spring 的异常时

【正确答案】: A

Spring-16 Spring Certified Professional ②
image.png

  1. 关于 REST 下列哪项陈述是正确的?
    • REST 是一个协议
    • REST 是可互操作的
    • REST 是相对性的
    • REST 是有状态的

  1. 关于在 Spring Boot Web 切片测试中使用Mock,以下那个选项是正确的?
    • A. 如果在 Web 切片测试 Spring 应用情景中已经存在 Spring Bean ,则不能对其进行 Mock
    • B. Mock 不能用于 Spring Boot Web 分片测试
    • C. Mock Spring Bean 需要使用 @Mock 注解对其进行注解
    • D. Mock Spring Bean 需要使用 @MockBean 注解对其进行注解

【正确答案】: D


  1. 请参考图示,关于 @DirtiesContext,以下哪项陈述是正确的?
@Test

@DirtiesContext

public void testDirtiesContext(){}
  • A. 他将关闭现有缓存的 ApplicationContext , 并在测试方法之前创建一个新的。
  • B. 他将关闭现有缓存的 ApplicationContext , 并在测试方法之后创建一个新的。
  • C. 它将保留现有缓存的 ApplicationContext , 对 Spring 所有代管 bean 的所有更改都将在测试后恢复
  • D. 它将仅重新创建在测试方法中修改的 Spring 代管的 bean.

答案:A


  1. 哪个说法最能描述 Spring MVC 中的 REST 特性?(选择一项)

A.Spring MVC 的 REST 功能不依赖于 JAX-RS 标准

B.Spring MVC 提供其 JAX-RS 实现

C.Spring MVC 的 REST 功能可以依赖任何 JAX-RS 实现

【正确答案】C


  1. 以下哪项陈述是正确的?

    • A使用 @AfterEach 注解的方法在执行类中的任何测试之前只会运行一次

    • B.使用 @BeforeEach 时,@AfterEach注解必须用于清理方法

    • C.@BeforeAll 注解只能用于非静态方法

    • D.使用 @BeforeAll 注解的方法在执行类中的任何测试之前只会运行一次

【正确答案】D


  1. 以下哪项陈述是正确的?
    • A. @ActiveProfiles 是一个类级别注解,用于声明在为集成测试加载 ApplicationContext 时启用哪些bean 定义配置文件
    • B. @ActiveProfiles 是一个类级别注解,用于指示 SpringTestContext Framework 记录在执行单个测试期间 ApplicationContext 中发布的所有事件
    • C.  @ActiveProfiles 是一个类级别注解,可用于配置属性文件和内联属性的位置,这些属性文件和内联属性将被添加到环境中针对集成测试加载的 ApplicationContext 的 PropertySource 的集中。
    • D. @ActiveProfiles 是一个类级别注解,可用于配置 SpringTestContext Framework 的引导方式

【正确答案】A


  1. 关于 Spring Boot和 Spring Data JPA,以下哪两项陈述是正确的?(请选择两项。)
    • A. 不能自定义 JPA 实体的扫描,会扫描整个类路径
    • B. 嵌入式数据库(H2、HSQLDB、 Derby)在启动期间不会重新创建
    • C. 任何类型的 Hibernate 属性都可以传递给 Spring Data JPA,如 spring.data.jpa.properties.xxx
    • D. @EntityScan和 spring.jpa* 属性可用于自定义 Spring Data JPA
    • E. Spring Data Jpa 是关系数据库的唯一实现

【正确答案】B,D


  1. 关于@EnableAutoConfiguration 注解,以下哪些说法是正确的?(选择两项)
    • A. 它通过尝试猜测必要的 bean 来启用 ApplicationContext 的自动配置
    • B. 无论使用它注解的类包如何,它都具有相同的效果
    • C. 它是 @SpringBootConfiguration 组合注解上的元注解
    • D. 它是 @SpringBootApplication 组合注解上的元注解
    • E. 它可以确保在注册用户定义的 bean 之前应用自动配置

【正确答案】A , D


  1. 关于构造函数注入,以下哪些说法是正确的?(选择两项)
    • A. 使用构造函数注入可以实现不变性
    • B. 如果只有一个构造函数,则不需要使用@Autowired 注解
    • C. 在一个目标 bean 中,构造函数注入和字段注入不能同时使用
    • D. 从测试的角度看,字段注入优于构造函数注入

【正确答案】A,B


  1. 关于 Spring MVC,以下哪些说法是正确的?(选三项)

    • A.Controllers 通常可以委开给 service bean 的 business 方法,因为 service bean 可以入到 Controller 中

    • B.用@Controller 注解的类可以通过组件扫描检测到,并以 Spring bean 的形式加载

    • C.数据可以通过使用特殊的 Model 参数从 Controller 传递到 View 中

    • D. 你不能在 Controller 类上使用构造函数注入

    • E. Controllers 必须注入 @Service bean 或 @Repository bean

【正确答案】A,B,C


  1. 关于@Controller 注解类,以下哪些说法是正确的?(选择三项)
    • A. @Controller 注解是 @Component 注解的一种类型
    • B. 他们有资格在 Spring Mvc 中处理请求
    • C. @Controller 和 @RestController 可以互换,类里面的方法不需要额外的代码修改
    • D. 可以通过组件扫描发现
    • E. 不能依赖注入

【正确答案】A,B,D


  1. 以下那两项是可以使用 Spring Boot Testing 测试的应用切片(选择两项)
    • A. 容器
    • B. 客户端
    • C. 存储库
    • D. Web
    • E. Messaging

【正确答案】C , D


  1. 关于 REST ,以下哪项称述是正确的?
    • A. REST 是一个协议
    • B. REST 是可互操作的
    • C. REST 是相对性的
    • D. REST 是有状态的

【正确答案】 B

我感觉没有十年脑血栓出不出来这种题,要么就是翻译的问题。


  1. 关于在JUnit集成测试中使用 @Transactional 注解的说法中,哪项不是正确的(原则一项)
    • A. 只有当 test 类或 test 方法被注解为 @Commit(false) 时,事务才会在测试后回滚
    • B. 默认情况下,每次测试后事务都回滚
    • C. 用 @Transactional 来注解 test 类,会使其所有的 test 方法在事务内运行
    • D. 用 @Transactional 来注解 test 方法,会使 test 方法在事务内运行

【正确答案】 A

Spring-16 Spring Certified Professional ②

  1. 关于在 Spring Boot Web 分片测试中使用 Mock ,以下那个选项是正确的?
    • A. 如果在 Web 分片测试,Spring 应用情景中已经存在 Spring Bean ,则不能对其进行 Mock
    • B. Mock 不能用在 Spring Web 分片测试
    • C. Mock Spring Bean 需要使用 @Mock 注解对其进行注解
    • D. Mock Spring bean 需要使用 @MockBean 注解对其进行注解

【正确答案】 D


  1. 请参考图示,关于 @DirtiesContext 以下哪项称述是正确的?
@Test
@DirtiesContext
public void testDirtiesContext() {
}
  • A. 它将关闭现有缓存的 ApplicationContext , 并在测试方法之前重新创建一个
  • B. 它将关闭现有缓存的 ApplicationContext , 并在测试方法之后重新创建一个
  • C. 它将保留现有缓存的 ApplicationContext , 对 Spring 代管的 bean 的所有更改都将在测试后恢复
  • D. 它将重新创建在测试方法中修改的 Spring 代管的 bean

【正确答案】 A

又是一个十年脑血栓题目, @DirtiesContext 影响的是下一次测试,如果加了 @DirtiesContext 注解的测试方法后面还有测试方法,默认在下一次测试方法开始执行前会创建一个新的 ApplicationContext

Spring-16 Spring Certified Professional ②

  1. 那个说法最能描述Spring MVC 中的 REST 特性?(选择一项)
    • A. Spring MVC 的 REST 功能不依赖于 JAX-RS 标准
    • B. Spring MVC 提供其 JAX-RS 实现
    • C. Spring MVC 的 REST 功能可以依赖任何 JAX-RS 实现

【正确答案】 C

JAX-RS is a Java EE 6 standard for building RESTful applications , Various implementations : Jersey(RI) , RESTEasy , Restlet , CXF, all implementations provide Spring support


  1. 以下哪项称述是正确的?
    • A. 使用 @AfterEach 注解的方法在执行类中的任何测试之前只会运行一次
    • B. 使用 @BeforeEach 时,@AfterEach 注解必须用于清理方法
    • C. @BeforeAll 注解只能用于非静态方法
    • D. 使用 @BeforeAll 注解的方法在执行类中的任何测试之前只会运行一次

【正确答案】 D


  1. 关于 Spring Boot 和 Spring Data JPA ,以下那两项称述是正确的?(选择两项)
    • A. 不能自定义 JPA 实体扫描,会扫描整个类路径
    • B. 嵌入式数据库(H2 , HSQLDB , Derby) 在启动期间不会重新创建
    • C. 任何类型的 Hibernate 属性都可以传递给 Spring Data JPA , 如 spring.jpa.properties.xxx
    • D. @EntityScan 和 spring.jpa.* 属性可用于自定义 Spring Data JPA
    • E. Spring Data JPA 是关系型数据库的唯一实现

【正确答案】 B , D


  1. 以下那种描述 ApplicationContext 对象的说法是正确的?(选择两项)
    • A. ApplicationContext 对象可以在单元测试,Web应用和独立应用中创建
    • B. 集成测试中不能创建 ApplicationContext 对象
    • C. ApplicationContext 对象保持着 Spring 运行时实例化的所有 bean
    • D. 不能通过 ApplicationContext 对象访问 Bean

【正确答案】 A , C


  1. 以下哪两个原则是REST原则?(选择两项)
    • A. Restful 应用支持客户端和服务器之间的紧密耦合
    • B. Restful 应用使用无状态体系架构
    • C. Restful 应用服务器持续跟踪客户端状态
    • D. Restful 应用不能使用缓存
    • E. Restful 应用使用 HTTP 标头和状态码作为与客户端的合同

【正确答案】 B , E

  1. 关于结果集处理,以下哪两项陈述是正确的?(选择两项)
    • A. RowMapper 接口用于将 ResultSet 的单行映射到对象
    • B. JdbcTemplate 配置了默认的 RowMapper
    • C. JdbcTemplate 可以将 ResultSet 的每一行作为 Set 返回
    • D. JdbcTemplate 可以将 ResultSet 的每一行作为 Map 返回
    • E. RowMapper 接口不能用于多行查询

【正确答案】 A , D


  1. 使用 Spring 构建应用的两个原因是什么?(选择两项)
    • A. Spring 提供了对基础架构的抽象层,例如持久性和消息传递
    • B. Spring 将Java应用部署到所有主要的云服务提供商的操作自动化
    • C. Spring 将 Java 应用构建自动化
    • D. Spring 提供了一个依赖注入容器
    • E. Spring 提供了全面的 Java IDE 支持

【正确答案】 A , D


  1. 以下哪些关于 BeanFactoryPostProcessors 的说法正确的是?(选择两项)
    • A. 检测 @PostConstruct 和 @PreDestroy 注解,然后调用适当行为
    • B. 允许实例化 Spring bean 之前转换 bean 定义
    • C. 允许实例化 Spring bean 之后转换 bean 定义
    • D. PropertySourcesPlaceholderConfigurer 是 BeanFactoryPostProcessor 接口的实现,用于读取 Spring Environment 中的属性值

【正确答案】 B , D


  1. 哪两个注解表明事务测试方法的事务应该在测试方法完成后提交?(选择两项)
    • A. @Commit
    • B. @Transactional(commit = true)
    • C. @Sql(always = true)
    • D. SqlMerge(false)
    • E. @Rollback(false)

【正确答案】 A , E


  1. 关于 BeanPostProcessor 扩展点,以下哪些说法是正确的?(选择两项)
    • A. BeanPostProcessor 在 bean 生命周期的 init 阶段就被调用
    • B. 可以实现自定义 BeanPostProcessor
    • C. 在注入依赖之前,BeanPostProcessor 就被调用
    • D. 在 BeanFactoryPostProcessors 被调用之前 , BeanPostProcessor 就被调用

【正确答案】 A , B


  1. 关于 @ConfigurationProperties 和 @Value 之间的差异,以下哪两项称述是正确的?(选择两项)
    • A. @Value 必须用于环境变量,因为  @ConfigurationProperties 无法访问环境
    • B. @ConfigurationProperties 支持松散绑定属性,但不支持通过 SpEL 进行属性绑定
    • C. 当属性绑定期间的类型安全是一个问题时,@ConfigurationProperties 比 @Value 更可取
    • D. @ConfigurationProperties 仅绑定来自 .properties 文件的属性,而不是来自 .yml 文件的属性
    • E. @Value 支持松散绑定属性,但不支持通过 SpEL 进行属性绑定

【正确答案】 B , C


  1. Spring Enviroment (可以)从哪里获得它的属性源集?(选择所有适用的)
    • A. 从通过 @PropertySource 注解指定的属性文件
    • B. 从 JVM 系统属性
    • C. 从应用程序定义的属性
    • D. 从系统环境变量,如 os.name

【正确答案】 A , B , D


  1. 关于创建 bean ,以下哪些说法是正确的?(选择两项)
    • A. 通过 @Autowired 注解方法或字段,显示创建 Spring Bean
    • B. 通过 @Bean 注解类,并使用组件扫描器扫描它的包,隐式创建 Spring Bean
    • C. 使用 @Component 注解类 , 并使用组件扫描器扫描它的包,隐式创建 Spring Bean
    • D. 在 Spring 配置文件中使用 @Bean 注解方法,显示创建 Spring Bean

【正确答案】 C , D

我不相信 spring 官方会出这么脑残的题,肯定是十年脑血栓翻译的问题。


  1. 关于 Spring Boot 自动配置自定义,以下哪两项称述是正确的?(选择两项)
    • A. 在自动配置类中启用组件扫描以查找必要的组件
    • B. 控制应用了 @AutoConfigureOrder 的自动配置类的顺序
    • C. 可以通过使用 @EnableAutoConfiguration 注解上的 exclude 属性来禁用特定的自动配置类
    • D. 可以通过对提供的 Spring Boot 自动配置类进行子类化,来提供自定义的自动配置
    • E. 使用 @AutoConfigureAfter 或 @AutoConfigureBefore 注解安特点的顺序应用配置

【正确答案】 B, C


这题感觉出的太脑血栓了我实在是看不下去了,也可能是原版题并没有问题,而是翻译的太垃圾,翻译这个题目的人一定不是技术从业者。

Spring-16 Spring Certified Professional ②

关于 Spring Certified Professional 考试题目之后不会再整理了,只针对考试而言题目都还是非常简单的,最困难的就是要理解垃圾的翻译。

Spring-16 Spring Certified Professional ②

DevX 会持续有趣的技术和见闻,如果你觉得本文对你有帮助希望你可以分享给更多的朋友看到。该文章会同步在微信公众号 【DevXJava】, 方便在微信客户端阅读。因为海水密度不同形成了两种不同的颜色的海洋。

DevX 不止于技术

Spring-16 Spring Certified Professional ②

原文始发于微信公众号(DevXTalk):Spring-16 Spring Certified Professional ②

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容