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