Spring Professional Certification Study Guide

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

C E R T I F I C AT I O N S T U D Y G U I D E – O C T O B E R 2 0 2 0

Spring Professional
Certification Study Guide
Spring Professional Certification Study Guide

Table of Contents
Overview 3
Logistics 3
The Exam 4
Exam FAQs 4
Is there anything in the exam that was not covered in the course?. . . . . . . . . . . . . . . 4

Do I have to know class names and method signatures? . . . . . . . . . . . . . . . . . . . . . . 4

Do I have to write, complete or rearrange source code? . . . . . . . . . . . . . . . . . . . . . . 4

Do I have to know any other APIs like AspectJ expression language in detail? . . . . . 4

Are the advanced slides part of the exam?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

How long is the eligibility record valid?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Topics 5
Container, Dependency and IOC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Aspect-Oriented Programming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Data Management: JDBC, Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Spring Data JPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Spring MVC and The Web Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Spring Boot Intro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Spring Boot Auto Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Spring Boot Actuator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Spring Boot Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Resources 11
Conclusion 11

C E R T I F I C AT I O N S T U D Y G U I D E | 2
Spring Professional Certification Study Guide

Overview
This guide is designed to help you prepare for the Spring Professional certification exam.
Please be aware that it should not be used if you have attended a Spring Core course that
was using a previous version.

The certification exam is based on the 4-day Spring Core training and the materials
provided with it are the ideal source to use for preparation. Of course, as with any
certification, the most valuable part, besides recognition, is the learning process.
Hence we encourage you to take time to experiment and follow your curiosity when
questions arise.

A 4-day course contains a lot of material. To help you focus your efforts and to know when
you’re ready, we’ve put together this guide. The guide contains a list of topics and a list of
further resources. Topics are organized by subject area, where each topic includes a
description of what you should make sure you know.

The list of topics can be used as a check-list. The training materials can be used as a point
of reference and as a learning ground. The list of resources is where you can go further to
get answers. Everything in the exam is covered somewhere in the course notes.

One possible way to prepare is to do the following for a given training module:

1. Review the slides, making notes of questions


2. Work through the labs
3. Review the list of topics that matches to the module by subject area
4. Use the lab to experiment with anything you need to spend more time on
5. Use the provided list of resources to look for further answers
6. Reading (at least partially) the reference documentation
7. Memorize the “big pictures”, tables, overviews, etc.
Of course, there are many more ways to organize your efforts. You can pair up with
someone else planning to take the exam or review all presentations for a given subject
area before going through the labs. Or maybe you have access to actual applications you
can review to test your knowledge.

Please keep in mind that you are expected to have a good working knowledge of all the
topics listed. Most of the questions will be very general, however, you will be asked a few
advanced questions.

Logistics
When you are ready to test and validate your product knowledge, please visit https://
tanzu.vmware.com/training/certification to purchase an industry-recognized Spring
certification exam.

VMware partners with Pearson Vue to remotely proctor our exams. Our certification
exams may be taken from a location of your choosing anywhere in the world provided you
can meet the basic system and test environment requirements and have a valid form of
photo identification.

For help with your exam purchase, exam registration process, credentials verification, or
other questions related to our certification program, process, and procedures, please
contact us at [email protected].

C E R T I F I C AT I O N S T U D Y G U I D E | 3
Spring Professional Certification Study Guide

The Exam
The exam itself is computer-based. The exam software first gives you some general
instructions: how to navigate, how to mark a question, and so forth – please read
it carefully.

Once you have agreed that you want to start, you have 90 minutes to answer 50 multiple
choice questions. You must answer 38 questions correctly (76%) in order to pass the exam.

Basic exam technique applies: read each question carefully and answer the question that
was asked, not what you thought was asked.

In particular, the questions refer to pure Spring Framework without Spring Boot, unless
the question explicitly says Spring Boot is involved.

Exam FAQs

Is there anything in the exam that was not covered in the course?
Mostly no.

Do I have to know class names and method signatures?


No. We think that this is why you are using an IDE - for us it’s much more important that
you’ve understood the concepts rather than learning API and method signatures. You
would not have to remember the class names or method signatures in the exam, but you
should know what they do if you see them in a code sample, however.

Do I have to write, complete or rearrange source code?


No. The only thing you should be able to do is read a snippet of code and understand
what it’s doing. For example, we might show you a class implementing a Spring callback,
and you will then see a couple of related questions. We do not ask you questions on things
an IDE can do for you, like checking if the code will compile.

Do I have to know any other APIs like AspectJ expression language in detail?
No. Of course, you should be able to read, understand and use AspectJ expression
language (pointcut expressions) wherever it is necessary to configure Spring AOP – but
this is not an exam about AspectJ.

Are the advanced slides part of the exam?


No. Only the content presented before each chapter lab slide will be on the exam. Any
course content presented after the chapter lab will not be in the exam. No content from
the optional chapters will be on the exam.

How long is the eligibility record valid?


An eligibility record is valid until the expiration date that is sent with the eligibility record
email, which is typically 90 days. Eligibility record expiration dates may not be extended.
Failure to attend an exam or arrive at the designated start time will result in forfeiting the
exam session and fee.

C E R T I F I C AT I O N S T U D Y G U I D E | 4
Spring Professional Certification Study Guide

Topics
The following is a list of topics, each of which is likely to have questions on the exam.

Several of the bullet points below overlap, asking the same (or a related) question in a
different way. The answer to more than one bullet point question may be the same as the
answer to another question.

Container, Dependency and IOC


• What is dependency injection and what are the advantages of using it?
• What is an interface and what are the advantages of making use of them in Java?
• What is an ApplicationContext?
• How are you going to create a new instance of an ApplicationContext?
• Can you describe the lifecycle of a Spring Bean in an ApplicationContext?
• How are you going to create an ApplicationContext in an integration test?
• What is the preferred way to close an application context? Does Spring Boot do this for
you?
• Can you describe:
– Dependency injection using Java configuration?
– Dependency injection using annotations (@Autowired)?
– Component scanning, Stereotypes?
– Scopes for Spring beans? What is the default scope?
• Are beans lazily or eagerly instantiated by default? How do you alter this behavior?
• What is a property source? How would you use @PropertySource?
• What is a BeanFactoryPostProcessor and what is it used for? When is it invoked?
– Why would you define a static @Bean method when creating your own
BeanFactoryPostProcessor?
– What is a PropertySourcesPlaceholderConfigurer used for?
• What is a BeanPostProcessor and how is it different to a BeanFactoryPostProcessor?
What do they do? When are they called?
– What is an initialization method and how is it declared on a Spring bean?
– What is a destroy method, how is it declared and when is it called?
– Consider how you enable JSR-250 annotations like @PostConstruct and @PreDestroy?
When/how will they get called?
– How else can you define an initialization or destruction method for a Spring bean?
• What does component-scanning do?
• What is the behavior of the annotation @Autowired with regards to field injection,
constructor injection and method injection?
• How does the @Qualifier annotation complement the use of @Autowired?
• What is a proxy object and what are the two different types of proxies Spring can create?
– What are the limitations of these proxies (per type)?
– What is the power of a proxy object and where are the disadvantages?

C E R T I F I C AT I O N S T U D Y G U I D E | 5
Spring Professional Certification Study Guide

• What does the @Bean annotation do?


• What is the default bean id if you only use @Bean? How can you override this?
• Why are you not allowed to annotate a final class with @Configuration
– How do @Configuration annotated classes support singleton beans?
– Why can’t @Bean methods be final either?
• How do you configure profiles? What are possible use cases where they might be useful?
• Can you use @Bean together with @Profile?
• Can you use @Component together with @Profile?
• How many profiles can you have?
• How do you inject scalar/literal values into Spring beans?
– What is @Value used for?
• What is Spring Expression Language (SpEL for short)?
• What is the Environment abstraction in Spring?
• Where can properties in the environment come from – there are many sources for
properties – check the documentation if not sure. Spring Boot adds even more.
• What can you reference using SpEL?
• What is the difference between $ and # in @Value expressions?

Aspect-Oriented Programming (AOP)


• What is the concept of AOP? Which problem does it solve? What is a cross cutting
concern?
– Name three typical cross cutting concerns.
– What two problems arise if you don’t solve a cross cutting concern via AOP?
• What is a pointcut, a join point, an advice, an aspect, weaving?
• How does Spring solve (implement) a cross cutting concern?
• Which are the limitations of the two proxy-types?
– What visibility must Spring bean methods have to be proxied using Spring AOP?
• How many advice types does Spring support? Can you name each one?
– What are they used for?
– Which two advices can you use if you would like to try and catch exceptions?
• If shown pointcut expressions, would you understand them?
– For example, in the course we matched getter methods on Spring Beans, what would
be the correct pointcut expression to match both getter and setter methods?
• What is the JoinPoint argument used for?
• What is a ProceedingJoinPoint? Which advice type is it used with?

C E R T I F I C AT I O N S T U D Y G U I D E | 6
Spring Professional Certification Study Guide

Data Management: JDBC, Transactions


• What is the difference between checked and unchecked exceptions?
– Why does Spring prefer unchecked exceptions?
– What is the Spring data access exception hierarchy?
• How do you configure a DataSource in Spring?
• What is the Template design pattern and what is the JDBC template?
• What is a callback? What are the JdbcTemplate callback interfaces that can be used with
queries? What is each used for? (You would not have to remember the interface names
in the exam, but you should know what they do if you see them in a code sample).
• Can you execute a plain SQL statement with the JDBC template?
• When does the JDBC template acquire (and release) a connection, for every method
called or once per template? Why?
• How does the JdbcTemplate support queries? How does it return objects and lists/maps
of objects?
• What is a transaction? What is the difference between a local and a global transaction?
• Is a transaction a cross cutting concern? How is it implemented by Spring?
• How are you going to define a transaction in Spring?
– What does @Transactional do? What is the PlatformTransactionManager?
• Is the JDBC template able to participate in an existing transaction?
• What is @EnableTransactionManagement for?
• How does transaction propagation work?
• What happens if one @Transactional annotated method is calling another @Transactional
annotated method inside a same object instance?
• Where can the @Transactional annotation be used? What is a typical usage if you put it
at class level?
• What does declarative transaction management mean?
• What is the default rollback policy? How can you override it?
• What is the default rollback policy in a JUnit test, when you use the @
RunWith(SpringJUnit4ClassRunner.class) in JUnit 4 or @ExtendWith(SpringExtension.
class) in JUnit 5, and annotate your @Test annotated method with @Transactional?
• Are you able to participate in a given transaction in Spring while working with JPA?
• Which PlatformTransactionManager(s) can you use with JPA?
• What do you have to configure to use JPA with Spring? How does Spring Boot make
this easier?

C E R T I F I C AT I O N S T U D Y G U I D E | 7
Spring Professional Certification Study Guide

Spring Data JPA


• What is a Spring Data Repository interface?
• How do you define a Spring Data Repository interface? Why is it an interface not a class?
• What is the naming convention for finder methods in a Spring Data Repository interface?
• How are Spring Data repositories implemented by Spring at runtime?
• What is @Query used for?

Spring MVC and The Web Layer


• What is the @Controller annotation used for?
• How is an incoming request mapped to a controller and mapped to a method?
• What is the difference between @RequestMapping and @GetMapping?
• What is @RequestParam used for?
• What are the differences between @RequestParam and @PathVariable?
• What are the ready-to-use argument types you can use in a controller method?
• What are some of the valid return types of a controller method?

REST
• What does REST stand for?
• What is a resource?
• Is REST secure? What can you do to secure it?
• Is REST scalable and/or interoperable?
• Which HTTP methods does REST use?
• What is an HttpMessageConverter?
• Is @Controller a stereotype? Is @RestController a stereotype?
– What is a stereotype annotation? What does that mean?
• What is the difference between @Controller and @RestController?
• When do you need to use @ResponseBody?
• What are the HTTP status return codes for a successful GET, POST, PUT or DELETE
operation?
• When do you need to use @ResponseStatus?
• Where do you need to use @ResponseBody? What about @RequestBody?
• If you saw example Controller code, would you understand what it is doing? Could you
tell if it was annotated correctly?
• What Spring Boot starter would you use for a Spring REST application?
• If you saw an example using RestTemplate, would you understand what it is doing?

C E R T I F I C AT I O N S T U D Y G U I D E | 8
Spring Professional Certification Study Guide

Security
• What are authentication and authorization? Which must come first?
• Is security a cross cutting concern? How is it implemented internally?
• What is the delegating filter proxy?
• What is the security filter chain?
• What is a security context?
• What does the ** pattern in an antMatcher or mvcMatcher do?
• Why is the usage of mvcMatcher recommended over antMatcher?
• Does Spring Security support password encoding?
• Why do you need method security? What type of object is typically secured at the
method level (think of its purpose not its Java type).
• What do @PreAuthorized and @RolesAllowed do? What is the difference between them?
• How are these annotations implemented?
• In which security annotation, are you allowed to use SpEL?

Testing
• What type of tests typically use Spring?
• How can you create a shared application context in a JUnit integration test?
• When and where do you use @Transactional in testing?
• How are mock frameworks such as Mockito or EasyMock used?
• How is @ContextConfiguration used?
• How does Spring Boot simplify writing tests?
• What does @SpringBootTest do? How does it interact with @SpringBootApplication and
@SpringBootConfiguration?

Spring Boot Intro


• What is Spring Boot?
• What are the advantages of using Spring Boot?
• What things affect what Spring Boot sets up?
• What is a Spring Boot starter? Why is it useful?
• Spring Boot supports both properties and YML files. Would you recognize and
understand them if you saw them?
• Can you control logging with Spring Boot? How?
• Where does Spring Boot look for application.properties file by default?
• How do you define profile specific property files?
• How do you access the properties defined in the property files?
• What properties do you have to define in order to configure external MySQL?
• How do you configure default schema and initial data?
• What is a fat jar? How is it different from the original jar?
• What embedded containers does Spring Boot support?

C E R T I F I C AT I O N S T U D Y G U I D E | 9
Spring Professional Certification Study Guide

Spring Boot Auto Configuration


• How does Spring Boot know what to configure?
• What does @EnableAutoConfiguration do?
• What does @SpringBootApplication do?
• Does Spring Boot do component scanning? Where does it look by default?
• How are DataSource and JdbcTemplate auto-configured?
• What is spring.factories file for?
• How do you customize Spring Boot auto configuration?
• What are the examples of @Conditional annotations? How are they used?

Spring Boot Actuator


• What value does Spring Boot Actuator provide?
• What are the two protocols you can use to access actuator endpoints?
• What are the actuator endpoints that are provided out of the box?
• What is info endpoint for? How do you supply data?
• How do you change logging level of a package using loggers endpoint?
• How do you access an endpoint using a tag?
• What is metrics for?
• How do you create a custom metric?
• What is Health Indicator?
• What are the Health Indicators that are provided out of the box?
• What is the Health Indicator status?
• What are the Health Indicator statuses that are provided out of the box?
• How do you change the Health Indicator status severity order?
• Why do you want to leverage 3rd-party external monitoring system?

Spring Boot Testing


• When do you want to use @SpringBootTest annotation?
• What does @SpringBootTest auto-configure?
• What dependencies does spring-boot-starter-test brings to the classpath?
• How do you perform integration testing with @SpringBootTest for a web application?
• When do you want to use @WebMvcTest? What does it auto-configure?
• What are the differences between @MockBean and @Mock?
• When do you want @DataJpaTest for? What does it auto-configure?

C E R T I F I C AT I O N S T U D Y G U I D E | 1 0
Spring Professional Certification Study Guide

Resources
http://spring.io/blog

Blog: Point your favorite RSS reader or come back for detailed, quality posts by
Spring developers.

http://docs.spring.io/spring/docs/current/spring-framework-reference

Reference: The reference documentation (800+ pages) is available as html pages, a single
html page and as a PDF document.

http://docs.spring.io/spring/docs/current/javadoc-api

Javadoc API

http://springbyexample.org

Spring By Example: Another good repository with good code samples is


SpringByExample.

Conclusion
When you have worked through this guide and know all the answers, we are pretty
confident that you should pass the certification. It’s recommended to do it as soon as
possible and we wish you good luck with it.

Thank you again for choosing VMware as your education partner and good luck with
your projects.

If you have encountered any errors, have any suggestions or enquiries please don’t
hesitate to contact your trainer or send an email to [email protected].

C E R T I F I C AT I O N S T U D Y G U I D E | 1 1
VMware, Inc. 3401 Hillview Avenue Palo Alto CA 94304 USA Tel 877-486-9273 Fax 650-427-5001 vmware.com Copyright © 2020 VMware, Inc.
All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents
listed at vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. and its subsidiaries in the United States and other jurisdictions.
All other marks and names mentioned herein may be trademarks of their respective companies. Item No: Spring Professional Certification Study Guide 10/20

You might also like