Upon completion of this course, you should be able to:

  • Develop Spring web applications with Spring MVC
  • Understand the features of the Spring Boot project
  • Use Spring Boot to create and configure a Spring application
  • Customize Spring Boot features
  • Develop REST web services with Spring Boot
  • Utilize various Spring database support including Spring Data
  • Secure an application with Spring Security
  • Use JMS support of Spring

Prerequisites

To succeed fully in this course, students should be able to:

  • Program Java applications
  • Understand basic Spring applications

Course Outline

CHAPTER 1. SPRING MVC PRIMER

  • Integrating Spring with Java EE Web Apps – ContextLoaderListener and WebApplicationContext
  • Spring Web MVC Overview, Capabilities, Architecture (Front Controller, MVC Pattern)
  • Spring MVC Basics the DispatcherServlet,
  • Configuration using @EnableWebMvc
  • Controllers, using @Controller, @RequestMapping (Handler Methods)
  • Controller Details using @RequestMapping, @RequestParam and @PathVariable
  • Model Data, @ModelAttribute, Model/ModelAndView Classes

CHAPTER 2. GETTING STARTED WITH SPRING BOOT

  • Spring Boot starters, CLI, Gradle plugin
  • Application class
  • @SpringBootApplication
  • Build as a Runnable jar
  • Dependency injection, component scans, Configuration
  • Externalize your configuration using application.properties or YAML files
  • Context Root and Management ports
  • Logging

CHAPTER 3. BUILDING WEB APPLICATIONS IN SPRING BOOT

  • Spring MVC Controllers
  • Using ModelAttributes
  • @RequestMapping and @RequestParam
  • Using a ModelAndView
  • Using images and templates for views
  • Using an Embedded database with JdbcTemplate
  • Executing Sql scripts
  • Using a production database
  • JPA Data and JPA Repositories

CHAPTER 4. RESTFUL WEB SERVICES

  • REST Overview (Characteristics/Capabilities, URI Templates, REST vs SOAP
  • REST and Spring MVC
  • Spring support for REST
  • @RequestMapping/@PathVariable, @RequestBody, @ResponseBody, HTTP Method conversion
  • URI Templates and @PathVariable
  • Writing RESTful Controllers / @RestController
  • JSON Representations for Resources
  • Message Converters
  • Generating XML
  • JAXB and Jackson Message Converters for XML
  • JAXB / @XmlRootElement
  • Content Negotiation
  • Client Requirements and Spring’s RestTemplate

CHAPTER 5. SECURING AN APPLICATION WITH SPRING BOOT AND SPRING SECURITY

  • Spring Security Overview using the DelegatingFilterChainProxy and FilterChainProxy
  • Using Spring Web Authentication
  • The key Classes of HttpSecurity, AuthenticationProvider, UserDetailsService, UserDetails, AuthenticationManager, Authentication and GrantedAuthorities
  • Using your own AuthenticationProvider and UserDetailsService with hashed passwords and tokens
  • Spring Security Authorization overview with the AccessDecisionManager and AccessDecisionVoters
  • Authorization using @EnableGlobalMethodSecurity, JSR250 and Spring Security Annotations
  • Using a @ControllerAdvice for ExceptionHandling
  • Creating your own custom Authorization Voter and AccessControlManager
  • Using HTTPS
  • Securing a Restful service via a customized UsernamePasswordAuthenticationFilter

CHAPTER 6. JMS SERVICES (OPTIONAL)

  • ActiveMQ support
  • Using JmsTemplate
  • MessageListenerAdapter
  • SimpleMessageListenerContainer
  • JmsListenerContainerFactory