Java web application development

laptop

You will be introduced to Spring Core and the Java Persistence API (JPA) specification. Examine what the Servlet container and the underlying technology for generating Java Server Pages (JSP) mappings are.

Then move on to learn about Spring MVC and standard web application architecture. Consider the RESTful web services on which modern applications are now being built. Finally, learn how the application development process is organized using Continuous Integration systems.

During the course, you will develop a tutorial web application according to 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:

  1. 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!
  1. Communication between web services
  • Introduction to REST concept;
  • Introduction to JSON;
  • Types of web requests: GET, POST, PUT, DELETE, etc.;
  • Error codes;
  • Practice.
  1. 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.
  1. Getting to know the UI
  • Twitter Bootstrap;
  • JSP, FreeMarker;
  • Practice.
  1. Databases
  • Relational and non-relational databases;
  • Introduction to SQL;
  • Data modeling;
  • JOIN operator;
  • Practice.
  1. ORM: Connection between Java and databases
  • Connection pool;
  • JDBC Rowset;
  • Introduction to JPA/Hibernate;
  • Practice.
  1. Practice using Hibernate
  • OneToMany, ManyToOne, ManyToMany links;
  • Working with ENUM;
  • Serialization/deserialization configuration;
  • Lazy/Eager data loading;
  • Transactions.
  1. Working with Spring Data
  • Different types of repositories;
  • Built-in methods;
  • Pagination.
  1. Getting data from other web services
  • RestTemplate;
  • Spring Declarative HTTP Client;
  • Other clients;
  • Practice.
  1. Advanced Spring Boot tools
  • Handling errors at Controller Advice level;
  • Configuration files;
  • Profiles;
  • Actuator;
  • Input validation;
  • Practice.
  1. Spring Boot Bad Practices
  • This is not the way to do it;
  • Component Isolation;
  • DTO/POJO and other beasts;
  • Beware of Hibernate.
  1. Advanced JSON techniques
  • Jackson – built-in library;
  • Serialization/deserialization setup;
  • Jackson polymorphism;
  • Practice.
  1. Testing in Spring Boot
  • Testing individual components;
  • Testing web components;
  • Testing work with external services using WireMock;
  • Practice.
  1. Testing Spring Boot with databases
  • H2;
  • Test containers;
  • Practice.