You will be introduced to Spring Core and the Java Persistence API (JPA) specification. Explore the Servlet container and the underlying technology for generating Java Server Pages (JSP) mappings.
During the course, you will develop a tutorial web application following the MVC template that interacts with a DBMS using JPA. Then you will rewrite it based on Spring MVC and add support for RESTful web services.
Course syllabus:
- Introduction
What is a Web service
What is a Web container
Typical Web service architecture (repository, service, controller)
Build systems maven, gradle
Introduction to Spring Boot
Practice Hello world!
- Communication between web services
Introduction to REST concept
Introduction to JSON
Types of web requests: GET, POST, PUT, DELETE, etc.
Error codes
Practice
- basic concepts of Spring Boot
Dependency Injection, Inversion of Control
What are annotations
Bean, Repository, Component, Controller and others
101 ways to declare a Bean
Practice
- Getting to know the UI
Twitter Bootstrap
JSP, FreeMarker
Practice
- Databases
Relational and non-relational databases
Introduction to SQL
Data modeling
JOIN operator
Practice
- ORM: Connection between Java and databases
Connection pool
JDBC Rowset
Introduction to JPA/Hibernate
Practice
- Practice using Hibernate
OneToMany, ManyToOne, ManyToMany links
Working with ENUM
Serialization/deserialization configuration
Lazy/Eager data loading
Transactions
- Working with Spring Data
Different types of repositories
Built-in methods
Pagination
- Getting data from other web services
RestTemplate
Spring Declarative HTTP Client
Other clients
Practice
- Advanced Spring Boot tools
Handling errors at Controller Advice level
Configuration files
Profiles
Actuator
Input validation
Practice
- Spring Boot Bad Practices
This is not the way to do it
Component Isolation
DTO/POJO and other beasts
Beware of Hibernate
- Advanced JSON techniques
Jackson – built-in library
Serialization/deserialization setup
Jackson polymorphism
Practice
- Testing in Spring Boot
Testing individual components
Testing web components
Testing work with external services using WireMock
Practice
- Testing Spring Boot with databases