
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 试题整理 ①
试题
-
关于 @TestPropertySource 注解以下哪项称述是正确的? -
A. Java 系统属性的优先级高于从 @TestPropertySource 加载的属性 -
B. 如果使用 @TestPropertySource ,则不会加载定义 @PropertySource 的属性 -
C. @TestPropertySource 中定义的内联属性可用于覆盖属性文件中定义的属性 -
D. 默认情况下, @TestPropertySource 注解加载相对于项目根目录的属性文件
-
Spring Framework 如何支持程序化事务管理? -
A. 通过可以提供一个 ApplicationContext 中声明为 bean 的 TransactionTemplate 类 -
B. Spring Framework 仅通过自动配置 UserTransaction 类来支持 JTA 环境中的程序化事务管理 -
C. Spring Framework 不支持程序化事务管理,仅支持基于注解的事务管理 -
D. 通过提供一个可以 @Autowired 到类中的自动配置的 TransactionTemplate 实例
-
使用申明式事务管理,以下那种情况会导致事务默认回滚? -
A. 当引发任何未捕获的未检查异常时 -
B. 当引发任何类型(检查或未检查)的异常时 -
C. 当引发任何未捕获的检查异常时 -
D. 仅当引发特定于 Spring 的异常时
【正确答案】: A

-
关于 REST 下列哪项陈述是正确的? -
REST 是一个协议 -
REST 是可互操作的 -
REST 是相对性的 -
REST 是有状态的
-
关于在 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
-
请参考图示,关于 @DirtiesContext,以下哪项陈述是正确的?
@Test
@DirtiesContext
public void testDirtiesContext(){}
-
A. 他将关闭现有缓存的 ApplicationContext , 并在测试方法之前创建一个新的。 -
B. 他将关闭现有缓存的 ApplicationContext , 并在测试方法之后创建一个新的。 -
C. 它将保留现有缓存的 ApplicationContext , 对 Spring 所有代管 bean 的所有更改都将在测试后恢复 -
D. 它将仅重新创建在测试方法中修改的 Spring 代管的 bean.
答案:A
-
哪个说法最能描述 Spring MVC 中的 REST 特性?(选择一项)
A.Spring MVC 的 REST 功能不依赖于 JAX-RS 标准
B.Spring MVC 提供其 JAX-RS 实现
C.Spring MVC 的 REST 功能可以依赖任何 JAX-RS 实现
【正确答案】C
-
以下哪项陈述是正确的?
-
A使用 @AfterEach 注解的方法在执行类中的任何测试之前只会运行一次
-
B.使用 @BeforeEach 时,@AfterEach注解必须用于清理方法
-
C.@BeforeAll 注解只能用于非静态方法
-
D.使用 @BeforeAll 注解的方法在执行类中的任何测试之前只会运行一次
【正确答案】D
-
以下哪项陈述是正确的? -
A. @ActiveProfiles 是一个类级别注解,用于声明在为集成测试加载 ApplicationContext 时启用哪些bean 定义配置文件 -
B. @ActiveProfiles 是一个类级别注解,用于指示 SpringTestContext Framework 记录在执行单个测试期间 ApplicationContext 中发布的所有事件 -
C. @ActiveProfiles 是一个类级别注解,可用于配置属性文件和内联属性的位置,这些属性文件和内联属性将被添加到环境中针对集成测试加载的 ApplicationContext 的 PropertySource 的集中。 -
D. @ActiveProfiles 是一个类级别注解,可用于配置 SpringTestContext Framework 的引导方式
【正确答案】A
-
关于 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
-
关于@EnableAutoConfiguration 注解,以下哪些说法是正确的?(选择两项) -
A. 它通过尝试猜测必要的 bean 来启用 ApplicationContext 的自动配置 -
B. 无论使用它注解的类包如何,它都具有相同的效果 -
C. 它是 @SpringBootConfiguration 组合注解上的元注解 -
D. 它是 @SpringBootApplication 组合注解上的元注解 -
E. 它可以确保在注册用户定义的 bean 之前应用自动配置
【正确答案】A , D
-
关于构造函数注入,以下哪些说法是正确的?(选择两项) -
A. 使用构造函数注入可以实现不变性 -
B. 如果只有一个构造函数,则不需要使用@Autowired 注解 -
C. 在一个目标 bean 中,构造函数注入和字段注入不能同时使用 -
D. 从测试的角度看,字段注入优于构造函数注入
【正确答案】A,B
-
关于 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
-
关于@Controller 注解类,以下哪些说法是正确的?(选择三项) -
A. @Controller 注解是 @Component 注解的一种类型 -
B. 他们有资格在 Spring Mvc 中处理请求 -
C. @Controller 和 @RestController 可以互换,类里面的方法不需要额外的代码修改 -
D. 可以通过组件扫描发现 -
E. 不能依赖注入
【正确答案】A,B,D
-
以下那两项是可以使用 Spring Boot Testing 测试的应用切片(选择两项) -
A. 容器 -
B. 客户端 -
C. 存储库 -
D. Web -
E. Messaging
【正确答案】C , D
-
关于 REST ,以下哪项称述是正确的? -
A. REST 是一个协议 -
B. REST 是可互操作的 -
C. REST 是相对性的 -
D. REST 是有状态的
【正确答案】 B
我感觉没有十年脑血栓出不出来这种题,要么就是翻译的问题。
-
关于在JUnit集成测试中使用 @Transactional 注解的说法中,哪项不是正确的(原则一项) -
A. 只有当 test 类或 test 方法被注解为 @Commit(false) 时,事务才会在测试后回滚 -
B. 默认情况下,每次测试后事务都回滚 -
C. 用 @Transactional 来注解 test 类,会使其所有的 test 方法在事务内运行 -
D. 用 @Transactional 来注解 test 方法,会使 test 方法在事务内运行
【正确答案】 A

-
关于在 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
-
请参考图示,关于 @DirtiesContext 以下哪项称述是正确的?
@Test
@DirtiesContext
public void testDirtiesContext() {
}
-
A. 它将关闭现有缓存的 ApplicationContext , 并在测试方法之前重新创建一个 -
B. 它将关闭现有缓存的 ApplicationContext , 并在测试方法之后重新创建一个 -
C. 它将保留现有缓存的 ApplicationContext , 对 Spring 代管的 bean 的所有更改都将在测试后恢复 -
D. 它将重新创建在测试方法中修改的 Spring 代管的 bean
【正确答案】 A
又是一个十年脑血栓题目, @DirtiesContext 影响的是下一次测试,如果加了 @DirtiesContext 注解的测试方法后面还有测试方法,默认在下一次测试方法开始执行前会创建一个新的 ApplicationContext

-
那个说法最能描述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
-
以下哪项称述是正确的? -
A. 使用 @AfterEach 注解的方法在执行类中的任何测试之前只会运行一次 -
B. 使用 @BeforeEach 时,@AfterEach 注解必须用于清理方法 -
C. @BeforeAll 注解只能用于非静态方法 -
D. 使用 @BeforeAll 注解的方法在执行类中的任何测试之前只会运行一次
【正确答案】 D
-
关于 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
-
以下那种描述 ApplicationContext 对象的说法是正确的?(选择两项) -
A. ApplicationContext 对象可以在单元测试,Web应用和独立应用中创建 -
B. 集成测试中不能创建 ApplicationContext 对象 -
C. ApplicationContext 对象保持着 Spring 运行时实例化的所有 bean -
D. 不能通过 ApplicationContext 对象访问 Bean
【正确答案】 A , C
-
以下哪两个原则是REST原则?(选择两项) -
A. Restful 应用支持客户端和服务器之间的紧密耦合 -
B. Restful 应用使用无状态体系架构 -
C. Restful 应用服务器持续跟踪客户端状态 -
D. Restful 应用不能使用缓存 -
E. Restful 应用使用 HTTP 标头和状态码作为与客户端的合同
【正确答案】 B , E
-
关于结果集处理,以下哪两项陈述是正确的?(选择两项) -
A. RowMapper 接口用于将 ResultSet 的单行映射到对象 -
B. JdbcTemplate 配置了默认的 RowMapper -
C. JdbcTemplate 可以将 ResultSet 的每一行作为 Set 返回 -
D. JdbcTemplate 可以将 ResultSet 的每一行作为 Map 返回 -
E. RowMapper 接口不能用于多行查询
【正确答案】 A , D
-
使用 Spring 构建应用的两个原因是什么?(选择两项) -
A. Spring 提供了对基础架构的抽象层,例如持久性和消息传递 -
B. Spring 将Java应用部署到所有主要的云服务提供商的操作自动化 -
C. Spring 将 Java 应用构建自动化 -
D. Spring 提供了一个依赖注入容器 -
E. Spring 提供了全面的 Java IDE 支持
【正确答案】 A , D
-
以下哪些关于 BeanFactoryPostProcessors 的说法正确的是?(选择两项) -
A. 检测 @PostConstruct 和 @PreDestroy 注解,然后调用适当行为 -
B. 允许实例化 Spring bean 之前转换 bean 定义 -
C. 允许实例化 Spring bean 之后转换 bean 定义 -
D. PropertySourcesPlaceholderConfigurer 是 BeanFactoryPostProcessor 接口的实现,用于读取 Spring Environment 中的属性值
【正确答案】 B , D
-
哪两个注解表明事务测试方法的事务应该在测试方法完成后提交?(选择两项) -
A. @Commit -
B. @Transactional(commit = true) -
C. @Sql(always = true) -
D. SqlMerge(false) -
E. @Rollback(false)
【正确答案】 A , E
-
关于 BeanPostProcessor 扩展点,以下哪些说法是正确的?(选择两项) -
A. BeanPostProcessor 在 bean 生命周期的 init 阶段就被调用 -
B. 可以实现自定义 BeanPostProcessor -
C. 在注入依赖之前,BeanPostProcessor 就被调用 -
D. 在 BeanFactoryPostProcessors 被调用之前 , BeanPostProcessor 就被调用
【正确答案】 A , B
-
关于 @ConfigurationProperties 和 @Value 之间的差异,以下哪两项称述是正确的?(选择两项) -
A. @Value 必须用于环境变量,因为 @ConfigurationProperties 无法访问环境 -
B. @ConfigurationProperties 支持松散绑定属性,但不支持通过 SpEL 进行属性绑定 -
C. 当属性绑定期间的类型安全是一个问题时,@ConfigurationProperties 比 @Value 更可取 -
D. @ConfigurationProperties 仅绑定来自 .properties 文件的属性,而不是来自 .yml 文件的属性 -
E. @Value 支持松散绑定属性,但不支持通过 SpEL 进行属性绑定
【正确答案】 B , C
-
Spring Enviroment (可以)从哪里获得它的属性源集?(选择所有适用的) -
A. 从通过 @PropertySource 注解指定的属性文件 -
B. 从 JVM 系统属性 -
C. 从应用程序定义的属性 -
D. 从系统环境变量,如 os.name
【正确答案】 A , B , D
-
关于创建 bean ,以下哪些说法是正确的?(选择两项) -
A. 通过 @Autowired 注解方法或字段,显示创建 Spring Bean -
B. 通过 @Bean 注解类,并使用组件扫描器扫描它的包,隐式创建 Spring Bean -
C. 使用 @Component 注解类 , 并使用组件扫描器扫描它的包,隐式创建 Spring Bean -
D. 在 Spring 配置文件中使用 @Bean 注解方法,显示创建 Spring Bean
【正确答案】 C , D
我不相信 spring 官方会出这么脑残的题,肯定是十年脑血栓翻译的问题。
-
关于 Spring Boot 自动配置自定义,以下哪两项称述是正确的?(选择两项) -
A. 在自动配置类中启用组件扫描以查找必要的组件 -
B. 控制应用了 @AutoConfigureOrder 的自动配置类的顺序 -
C. 可以通过使用 @EnableAutoConfiguration 注解上的 exclude 属性来禁用特定的自动配置类 -
D. 可以通过对提供的 Spring Boot 自动配置类进行子类化,来提供自定义的自动配置 -
E. 使用 @AutoConfigureAfter 或 @AutoConfigureBefore 注解安特点的顺序应用配置
【正确答案】 B, C
这题感觉出的太脑血栓了我实在是看不下去了,也可能是原版题并没有问题,而是翻译的太垃圾,翻译这个题目的人一定不是技术从业者。
关于 Spring Certified Professional
考试题目之后不会再整理了,只针对考试而言题目都还是非常简单的,最困难的就是要理解垃圾的翻译。
DevX
会持续有趣的技术和见闻,如果你觉得本文对你有帮助希望你可以分享给更多的朋友看到。该文章会同步在微信公众号 【DevXJava】, 方便在微信客户端阅读。因为海水密度不同形成了两种不同的颜色的海洋。
DevX 不止于技术
原文始发于微信公众号(DevXTalk):Spring-16 Spring Certified Professional ②
暂无评论内容