Chapter
Module 2 Table of Contents
Module 3 Table of Contents
Evolution of the Spring Framework
Spring Framework Architecture
Benefits of the Spring Framework
Creating an application in Spring
Chapter 2: Inversion of Control in Spring
Understanding Inversion of Control
Bean definition inheritance
The Spring bean life cycle
Chapter 3: DAO and JDBC in Spring
JDBC batch operation in Spring
Calling a stored procedure
Chapter 4: Hibernate with Spring
Why Object/Relational Mapping?
Introducing ORM, O/RM, and O/R mapping
Integrating Hibernate with the Spring Framework
Hibernate Criteria Query Language
Chapter 5: Spring Security
Spring Security configuration
Securing web application's URL access
Logging into web application
Let's get down to business
Chapter 6: Spring Testing
Create unit tests of the Spring MVC controller
Spring MVC test framework
Chapter 7: Integrating JavaMail and
JMS with Spring
Spring Java Messaging Service
Appendix A: Solutions to Exercises
Chapter 1, Introducing the Spring Framework
Chapter 2, Inversion of Control in Spring
Chapter 3, DAO and JDBC in Spring
Chapter 4, Hibernate with Spring
Chapter 5, Spring Security
Chapter 6, Spring Testing
Chapter 7, Integrating JavaMail and
JMS with Spring
Appendix B: Setting up the Application Database – Apache Derby
Module 2: Introduction Page
Chapter 1: Configuring a Spring Development Environment
[Time for action – installing JDK]
Time for action – installing JDK
Time for action – setting up environment variables
[Time for action – installing the Maven build tool]
Time for action – installing the Maven build tool
[Time for action – installing the Tomcat web server]
Time for action – installing the Tomcat web server
Configuring a development environment
[Time for action – installing Spring Tool Suite]
Time for action – installing Spring Tool Suite
Time for action – configuring Maven on STS
Time for action – configuring Tomcat on STS
Creating our first Spring MVC project
[Time for action – creating a Spring MVC project in STS]
Time for action – creating a Spring MVC project in STS
Time for action – adding Java version properties in pom.xml
Time for action – adding Spring jars to the project
Time for action – adding a welcome page
Time for action – configuring the Dispatcher servlet
[Time for action – running the project]
Time for action – running the project
Chapter 2: Spring MVC Architecture – Architecting Your Web Store
[Time for action – examining request mapping]
Time for action – examining request mapping
Pop quiz – request mapping
Understanding the Dispatcher servlet configuration
[Time for action – examining the servlet mapping]
Time for action – examining the servlet mapping
Servlet mapping versus request mapping
Pop quiz – servlet mapping
Time for action – understanding web application context
Understanding the web application context configuration
[Pop quiz – web application context configuration]
Pop quiz – web application context configuration
Overview of the Spring MVC request flow
The web application architecture
Time for action – creating a domain object
Time for action – creating a repository object
Time for action – creating a service object
Have a go hero – accessing the product domain object via a service
An overview of the web application architecture
[Have a go hero – listing all our customers]
Have a go hero – listing all our customers
Chapter 3: Control Your Store with Controllers
The role of a Controller in Spring MVC
[Time for action – adding class-level request mapping]
Time for action – adding class-level request mapping
Default request mapping method
Pop quiz – class level request mapping
Using URI template patterns
[Time for action – showing products based on category]
Time for action – showing products based on category
Pop quiz – request path variable
[Time for action – showing products based on filters]
Time for action – showing products based on filters
Understanding request parameters
[Time for action – adding a product detail page]
Time for action – adding a product detail page
Pop quiz – the request parameter
Time for action – implementing a master detail View
Have a go hero – adding multiple filters to list products
Chapter 4: Working with Spring Tag Libraries
The JavaServer Pages Standard Tag Library
Serving and processing forms
[Time for action – serving and processing forms]
Time for action – serving and processing forms
Have a go hero – customer registration form
[Time for action – whitelisting form fields for binding]
Time for action – whitelisting form fields for binding
Externalizing text messages
[Time for action – externalizing messages]
Time for action – externalizing messages
Have a go hero – externalizing all the labels from all the pages
Chapter 5: Working with View Resolver
[Time for action – examining RedirectView]
Time for action – examining RedirectView
[Time for action – serving static resources]
Time for action – serving static resources
Time for action – adding images to the product detail page
Multipart requests in action
[Time for action – adding images to a product]
Time for action – adding images to a product
Have a go hero – uploading product user manuals to the server
Using ContentNegotiatingViewResolver
[Time for action – configuring ContentNegotiatingViewResolver]
Time for action – configuring ContentNegotiatingViewResolver
Working with HandlerExceptionResolver
[Time for action – adding a ResponseStatus exception]
Time for action – adding a ResponseStatus exception
Time for action – adding an exception handler
Chapter 6: Internalize Your Store with Interceptor
Working with interceptors
[Time for action – configuring an interceptor]
Time for action – configuring an interceptor
LocaleChangeInterceptor – internationalization
[Time for action – adding internationalization]
Time for action – adding internationalization
Have a go hero – fully internationalize the product details page
[Time for action – mapped intercepting offer page requests]
Time for action – mapped intercepting offer page requests
Chapter 7: Incorporating Spring Security
[Time for action – authenticating users based on roles]
Time for action – authenticating users based on roles
Pop quiz – Spring Security
Have a go hero – play with Spring Security
Chapter 8: Validate Your Products with a Validator
[Time for action – adding Bean Validation support]
Time for action – adding Bean Validation support
Have a go hero – adding more validation in the Add new product page
Custom validation with JSR-303/Bean Validation
[Time for action – adding Bean Validation support]
Time for action – adding Bean Validation support
Have a go hero – adding custom validation to a category
[Time for action – adding Spring validation]
Time for action – adding Spring validation
Time for action – combining Spring validation and Bean Validation
Have a go hero – adding Spring validation to a product image
Chapter 9: Give REST to Your Application with Ajax
[Time for action – implementing RESTful web services]
Time for action – implementing RESTful web services
Time for action – consuming REST web services
Handling web services in Ajax
[Time for action – consuming REST web services via Ajax]
Time for action – consuming REST web services via Ajax
Chapter 10: Float Your Application with Web Flow
Working with Spring Web Flow
[Time for action – implementing the order processing service]
Time for action – implementing the order processing service
Time for action – implementing the checkout flow
Understanding flow definitions
Understanding checkout flow
Time for action – creating Views for every view state
Have a go hero – adding a decision state
Chapter 11: Template with Tiles
Enhancing reusability through Apache Tiles
[Time for action – creating Views for every View state]
Time for action – creating Views for every View state
Chapter 12: Testing Your Application
[Time for action – unit testing domain objects]
Time for action – unit testing domain objects
Have a go hero – adding tests for Cart
Integration testing with the Spring Test context framework
[Time for action – testing product validator]
Time for action – testing product validator
Time for action – testing product Controllers
Time for action – testing REST Controllers
Have a go hero – adding tests for the remaining REST methods
Appendix A: Using the Gradle Build Tool
The Gradle build script for your project
Understanding the Gradle script
Appendix B: Pop Quiz Answers
Chapter 2, Spring MVC Architecture – Architecting Your Web Store
Chapter 3, Control Your Store with Controllers
Chapter 4, Working with Spring Tag Libraries
Chapter 5, Working with View Resolver
Chapter 6, Internalize Your Store with Interceptor
Chapter 7, Incorporating Spring Security
Chapter 10, Float Your Application with Web Flow
Chapter 11, Template with Tiles
Module 3: Introduction Page
Chapter 1: Demystifying Microservices
The evolution of microservices
Microservices – the honeycomb analogy
Principles of microservices
Characteristics of microservices
Relationship with other architecture styles
Chapter 2: Building Microservices with Spring Boot
Setting up a development environment
Developing a RESTful service – the legacy approach
Moving from traditional web applications to microservices
Using Spring Boot to build RESTful microservices
Getting started with Spring Boot
Developing the Spring Boot microservice using the CLI
Developing the Spring Boot Java microservice using STS
Developing the Spring Boot microservice using Spring Initializr – the HATEOAS example
The Spring Boot configuration
Changing the default embedded web server
Implementing Spring Boot security
Enabling cross-origin access for microservices
Implementing Spring Boot messaging
Developing a comprehensive microservice example
Configuring application information
Adding a custom health module
Documenting microservices
Chapter 3: Applying Microservices Concepts
Patterns and common design decisions
The microservices capability model
Chapter 4: Microservices Evolution – A Case Study
Reviewing the microservices capability model
Understanding the PSS application
Microservices to the rescue
Migrate modules only if required
Target implementation view
Chapter 5: Scaling Microservices with Spring Cloud
Reviewing microservices capabilities
Reviewing BrownField's PSS implementation
Setting up the environment for BrownField PSS
Feign as a declarative REST client
Ribbon for load balancing
Eureka for registration and discovery
Zuul proxy as the API gateway
Streams for reactive microservices
Summarizing the BrownField PSS architecture
Chapter 6: Autoscaling Microservices
Reviewing the microservice capability model
Scaling microservices with Spring Cloud
Understanding the concept of autoscaling
Autoscaling BrownField PSS microservices
Chapter 7: Logging and Monitoring Microservices
Reviewing the microservice capability model
Understanding log management challenges
A centralized logging solution
The selection of logging solutions
Data analysis using data lakes
Chapter 8: Containerizing Microservices with Docker
Reviewing the microservice capability model
Understanding the gaps in BrownField PSS microservices
The difference between VMs and containers
The benefits of containers
Microservices and containers
Deploying microservices in Docker
Running RabbitMQ on Docker
Using the Docker registry
Microservices on the cloud
Running BrownField services on EC2
Updating the life cycle manager
The future of containerization – unikernels and hardened security
Chapter 9: Managing Dockerized Microservices with Mesos and Marathon
Reviewing the microservice capability model
Why cluster management is important
What does cluster management do?
Relationship with microservices
Relationship with virtualization
Cluster management solutions
Cluster management with Mesos and Marathon
Implementing Mesos and Marathon for BrownField microservices
A place for the life cycle manager
Chapter 10: The Microservices Development Life Cycle
Reviewing the microservice capability model
The new mantra of lean IT – DevOps
Meeting the trio – microservices, DevOps, and cloud
Practice points for microservices development
Microservices development governance, reference architectures, and libraries