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
Getting Started with Spring Boot
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
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
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
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