Spring 专业认证考试学习指南


今天逛Spring 官网发现Spring 官方早在今年五月份就推出了一套Spring 专业认证考试。

接下来让我们一起来官网了解下吧。

1.1 Spring 专业认证考试简介

打开Spring 官网,我们可以看到如下简介:
在这里插入图片描述

上面翻译后大致意思是: Spring 专业认证考试旨在测试和验证 您对Spring的理解和熟悉

打开介绍看了下,学习资料是免费的,但是考试测评是收费的。

详情如下所示:
在这里插入图片描述

1.2 Spring 专业认证考试学习资料

考试资料如下:

1.3 Spring 专业认证考试范围

Spring 专业认证考试旨在测试和验证您对以下方面的理解和熟悉:

  • Container basics
  • Aspect Oriented Programming (AOP)
  • Data access and transactions
  • Spring model-view-controller (MVC)

考试主题范围如下:

  • Container (20%)
  • AOP (8%)
  • JDBC (4%)
  • Transactions (8%)
  • MVC (8%)
  • Security (6%)
  • REST (6%)
  • JPA Spring Data (4%)
  • Testing (4%)
  • Boot Into (8%)
  • Boot Autoconfig (8%)
  • Boot Actuator (8%)
  • Boot Testing (8%)

考试时间是90分钟,通过率76%以上视为合格。

1.4 Spring 专业认证考试费用

看了下考试费用是169美元
在这里插入图片描述
折算成人民币是多少钱呢?
在这里插入图片描述
然后除此之外,推荐了四天的核心备战考试课程,价格也是不菲哈。
在这里插入图片描述

他们可能真的不知道中国国内行情,定价真贵。。。

1.5 Spring 专业认证考试知识点汇总

考试费用我是考不起了,不过这些题目大纲感觉还是很有学习价值的。

接下来我们就一起盘点下这些Spring 核心技术栈需要掌握的东西吧。

1.5.1 Container, Dependency ,AOP和 IOC

1.5.1.1 Container

  • 什么是DI( dependency injection) 以及有什么优点?
  • 什么是一个接口?他们在Java中使用有什么优点?
  • 为什么推荐使用Spring Beans?
  • application-context 应用程序上下文是什么意思?
  • 如何创建一个新的ApplicationContext 实例?
  • 能否在ApplicationContext中描述Spring Bean的生命周期
  • 如何在集成测试中创建ApplicationContext?
  • 关闭 application context (应用程序上下文)的首选方法是什么? Spring Boot是否是这样做的?

1.5.1.2 Dependency

  • 如何使用Java Configuration 实现依赖注入?
  • 如何使用@Autowired 注解实现依赖注入?
  • 能否描述下 Component scanning 组件扫描?
  • 能否描述下Spring Beans 的范围?默认的范围是什么?
  • Beans 默认是懒加载还是优先加载? 如何改变这种行为?
  • 什么是property?如何使用 @PropertySource
  • BeanFactoryPostProcessor 是什么?它是用来做什么的? 什么时候开始调用?
  • 为什么要定义静态@Bean方法?
  • ProperySourcesPlaceholderConfigurer 是用来干什么的?
  • BeanPostProcessor 是什么?它和BeanFactoryPostProcessor 有什么不同?它们可以做什么?什么时候调用?
  • 什么是初始化方法?在Spring Bean 中如何声明它?
  • 什么是销毁方法,如何声明它和什么时候它会被调用?
  • 考虑如何启用JSR-250 注解,比如@PostConstruct 和@PreDestroy ,它们什么时候/如何被调用?
  • 您还可以如何为Spring bean定义初始化或销毁方法?
  • component-scanning组件扫描是干啥的?
  • @Autowired 注解作用到字段注入,构造注入和方法注入,有什么不同?
  • 如果想对私有的成员字段注入一些东西,该怎么做?这对测试有什么影响?
  • @Qualifier注解如何补充@Autowired的使用?
  • 什么是代理对象,Spring可以创建两种不同类型的代理?
  • 这些代理(每种类型)的局限性是什么?
  • 代理对象的功能是什么,缺点在哪里?
  • @Bean 注解是干什么的?
  • 如果仅使用@Bean,默认的bean ID是什么? 您如何覆盖它?
  • 为什么不允许使用@Configuration 注解作用在一个final 类上?
  • 如何让 拥有@Configuration注解的类支持单例bean
  • 为什么@Bean 注解方法也不能是final 的?
  • 如何配置profiles文件? 有哪些可能有用的用例?
  • @Bean@Profile 可以一起使用吗?
  • @Component@Profile 可以一起使用么?
  • 可以有多少个Profiles 文件?
  • 如何将scalar/literal (标量/文字)值注入Spring Bean
  • @Value 注解是用来做什么的?
  • 什么是Spring Expression Language(简称SpEL
  • Spring 的抽象的 Environment是什么?
  • Environment中的properties 从何而来–有许多来源属性
    如果不确定,请检查文档。 Spring Boot增加了更多。
    -我们可以使用SpEL引用什么?
  • @Value表达式中的$有什么区别?

1.5.1.3 AOP

面向切面编程

  • AOP的概念是什么? 它解决什么问题? 跨域需要注意什么?
  • 列举三个典型的切面的注意事项。
  • 如果您不通过AOP解决跨领域问题,会出现哪两个问题?
  • 什么是pointcut(切入点),join point(连接点),advice(建议),aspect(方面),weaving(编织)?
  • Spring如何解决(实现)跨域问题?
  • 两种代理类型有哪些局限性?
  • 使用Spring AOP必须代理Spring bean方法什么可见性?
  • Spring支持多少种建议类型。 可以给每个命名吗?
  • 他们的用途是什么?
  • 如果您想尝试捕获异常,可以使用哪两个建议?
  • 您需要做什么才能启用@Aspect注解的检测?
  • @EnableAspectJAutoProxy 注解是做什么的?
  • 如果显示了切入点表达式,您能理解它们吗?
  • 例如,在课程中,我们在Spring Beans上匹配了getter方法,那么正确的切入点表达式 是匹配getter和setter方法?
  • JoinPoint参数用于什么?
  • 什么是ProceedingJoinPoint? 什么时候使用?

1.5.2 Data Management: JDBC, Transactions

  • 已检查和未检查的异常之间有什么区别?
  • 为什么Spring更喜欢未检查的异常?
  • 什么是数据访问异常层次结构?
  • 如何在Spring中配置数据源? 哪个bean对开发/测试数据库非常有用?
  • 什么是模板设计模式,什么是JDBC模板?
  • 什么是回调? 可以使用的三个JdbcTemplate回调接口是什么有疑问吗? 每个都有什么用? (您不必记住界面 名称,但如果您在代码示例中看到它们,则应该知道它们的作用。)
  • 您可以使用JDBC模板执行普通的SQL语句吗?
  • 对于每种方法,JDBC模板何时获取(并释放)连接 每个模板调用一次还是一次? 为什么?
  • JdbcTemplate如何支持通用查询? 它如何返回对象以及列表/对象图?
  • 什么是事务? 本地事务和全局事务有什么区别?
  • 事务是否是跨域的关注点? Spring如何实现?
  • 您将如何在Spring中定义事务?
  • @Transactional是做什么的? 什么是PlatformTransactionManager
  • JDBC模板是否可以参与已存在的事务?
  • 什么是事务隔离级别? 我们有多少,如何定制?
  • @EnableTransactionManagement 注解是做什么的?
  • 事务传递是什么意思?
  • 如果一个@Transactional带注解的方法在同一对象实例上调用另一个@Transactional带注解的方法会发生什么?
  • 在哪里可以使用@Transactional 注解? 如果您将其放在class 类级别上,通常有什么用法?
  • 声明式事务管理是什么意思?
  • 默认回滚策略是什么? 如何重写它?
  • 当您使用JUnit测试时,默认的回滚策略是什么? 当我们使用JUnit 4中的@RunWith(SpringJUnit4ClassRunner.class)或 JUnit 5中的@ExtendWith(SpringExtension.class)的注解,您的@Test注解@Transactional的方法?
  • 为什么“工作单元”一词如此重要,为什么JDBC AutoCommit违反了这种模式?
  • 如果您想使用JPA,在Spring需要做什么?
  • 使用JPA时,当Spring 和JPA 一起使用的时候,可以参与已有的事务么?
  • 您可以在JPA中使用哪些PlatformTransactionManager
  • 您需要配置什么才能在Spring中使用JPASpring Boot如何使这更容易?

1.5.3 Spring Data JPA

  • 什么是 Repository 接口?
  • 如何定义Repository 接口? 为什么它是一个接口而不是类?
  • Repository接口中的finder方法的命名约定是什么?
  • Spring在运行时如何实现Spring Data repositories (存储库)?
  • @Query 注解是用来做什么的? Spring MVC和Web层
  • MVC是一个设计模式的缩写。 它代表什么,它背后的思想是什么?
  • 什么是DispatcherServlet,它的作用是什么?
  • 什么是web application context(Web应用程序上下文)? 它提供什么额外的范围?
  • @Controller注解有什么用?
  • 传入请求如何映射到控制器然后映射到方法?
  • @RequestMapping@GetMapping 注解不同之处是什么?
  • @RequestParam 是做什么的?
  • @RequestParam 和@PathVariable 的不同之处是什么?
  • 控制器方法的参数类型有哪些?
  • 您还可以在控制器方法参数上使用哪些其他注解? (您可以忽略此考试的表单处理注释)
  • 控制器方法的有效返回类型有哪些?

1.5.4 Security

  • 什么是身份验证和授权? 哪一个必须优先?
  • security 是跨领域关注的问题吗? 在内部如何实现?
  • 什么是委派过滤器代理?
  • 什么是安全过滤器链?
  • 什么是 security context ?
  • antMatchermvcMatcher中的**模式有什么作用
  • 为什么在antMatcher上推荐使用mvcMatcher
  • Spring Security是否支持密码哈希? 什么是salt 盐?
  • 为什么需要方法安全性? 该方法通常保护哪种类型的对象级别(考虑其用途而不是其Java类型)。
  • @PreAuthorized@RolesAllowed注解是做什么? 它们之间有什么区别?
  • 这些注解如何实现?
  • 您可以在哪个security 注解中使用SpEL?

1.5.5 REST

  • REST代表什么?
  • resource 是什么?
  • CRUD 是什么意思?
  • REST安全吗? 您可以采取什么措施来保护它?
  • REST是否可扩展和/或可互操作?
  • REST使用哪些HTTP方法?
  • 什么是HttpMessageConverter
  • REST通常是无状态的吗?
  • @RequestMapping有什么作用?
  • @Controller是构造型吗? @RestController是构造型吗?
  • 什么是构造型注解?这意味着什么?
  • @Controller@RestController有什么区别?
  • 您何时需要@ResponseBody
  • GETPOSTPUTDELETEHTTP状态返回码是什么?
  • 什么时候需要@ResponseStatus
  • 在哪里需要@ResponseBody@RequestBody呢?尽量不需要混淆了。
  • 如果您看到了示例控制器代码,您是否了解它在做什么?你能否告诉是否正确注解?
  • 您的类路径中是否需要Spring MVC
  • 对于Spring REST应用程序,您将使用哪种Spring Boot Starter?
  • RestTemplate的优点是什么?
  • 如果您看到一个使用RestTemplate的示例,您会理解它的作用吗?

1.5.6 Testing

  • 您是否在单元测试中使用Spring?
  • 什么类型的测试通常使用Spring?
  • 如何在JUnit集成测试中创建共享的应用程序上下文?
  • 在测试时 什么时候,什么地方使用@Transactional
  • 如何使用Mockito或EasyMock等模拟框架?
  • @ContextConfiguration如何使用?
  • Spring Boot如何简化编写测试?
  • @SpringBootTest做什么? 它如何与@SpringBootApplication@SpringBootConfiguration交互?

1.5.7 Spring Boot 介绍

  • Spring Boot 是什么?
  • 使用Spring Boot有什么优势?
  • 为什么它是 opinionated (自以为是)的?
  • 哪些因素会影响Spring Boot的设置?
  • 什么是 Spring Boot starter POM ?为什么它是有用的?
  • Spring Boot同时支持properties和YML文件。 如果你看到,你能识别和理解他们么?
  • 您可以使用Spring Boot控制日志记录吗? 怎么控制?
  • 默认情况下,Spring Boot在哪里寻找properties文件?
  • 如何定义特定于配置文件的properties文件?
  • 如何访问properties文件中定义的属性?
  • 您必须定义哪些属性才能配置外部MySQL?
  • 您如何配置默认schema 表结构 和初始数据?
  • 什么是 fat jar? 它和原始的jar 有什么不同?
  • 嵌入式容器和WAR有什么区别?
  • Spring Boot支持哪些嵌入式容器?

1.5.8 Spring Boot Auto Configuration

  • Spring Boot如何知道要配置什么?
  • @EnableAutoConfiguration做什么?
  • @SpringBootApplication做什么?
  • Spring Boot是否进行组件扫描? 默认情况下它在哪里?
  • 如何自动配置DataSourceJdbcTemplate
  • spring.factories文件有什么用?
  • 如何自定义Spring自动配置?
  • @Conditional注解的示例是什么? 如何使用?

1.5.9 Spring Boot Actuator

  • Spring Boot Actuator提供什么值?
  • 您可以使用哪两种protocols 协议访问actuator endpoints?
  • 开箱即用的actuator endpoints有哪些?
  • 信息endpoints的作用是什么? 您如何提供数据?
  • 如何使用loggers endpoint更改包的日志记录级别?
  • 如何使用标签访问端点?
  • metrics 指标是什么?
  • 如何创建带有或不带有标签的自定义指标?
  • 什么是健康指标?
  • 开箱即用的健康指标是什么?
  • 健康指标状态是什么?
  • 开箱即用的健康指示器的状态是什么?
  • 您如何更改健康指标状态严重性顺序?
  • 为什么要利用第三方外部监控系统?

1.5.10 Spring Boot Testing

  • 什么时候要使用@SpringBootTest 注解?
  • @SpringBootTest自动配置什么?
  • spring-boot-starter-test 会给classpath添加什么依赖?
  • 如何使用@SpringBootTest对Web应用程序执行集成测试?
  • 您何时要使用@WebMvcTest? 它会自动配置什么?
  • @MockBean@Mock有什么区别?
  • 您何时需要@DataJpaTest? 它会自动配置什么?

本篇完~

  • 如果喜欢我的博文,欢迎点击关注和点赞。
  • 交流即分享,分享才能进步。
发布了162 篇原创文章 · 获赞 219 · 访问量 40万+

猜你喜欢

转载自blog.csdn.net/hadues/article/details/103522216
今日推荐