Spring Boot 2.0 projects build production-grade reactive applications and microservices with Spring Boot
Develop diverse real-life projects including most aspects of Spring Boot Key Features Run production-grade based applications using the Spring WebFlux framework Learn to develop high performance, asynchronous applications with Spring Boot Create robust microservice-based applications with Kotlin usi...
Other Authors: | |
---|---|
Format: | eBook |
Language: | Inglés |
Published: |
Birmingham ; Mumbai :
Packt Publishing
2018.
|
Edition: | 1st edition |
Subjects: | |
See on Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630465506719 |
Table of Contents:
- Cover
- Title Page
- Copyright and Credits
- Dedication
- Packt Upsell
- Contributors
- Table of Contents
- Preface
- Chapter 1: Introduction
- Technical requirements
- Generating Spring Boot Projects
- Opening the generated project with IntelliJ
- Opening the generated project with STS
- Getting started with Spring Boot
- Learning about Spring Boot
- Anatomy of a Spring Boot application
- Supporting the Spring Framework ecosystem in Spring Boot
- Changes since Spring Boot 1.x
- Registering a Spring Bean using ApplicationContextInitializer
- Configuration property binding
- New property binding API
- Property origin
- Tightened rules for governing relaxed property binding
- Environment variables with indices
- Direct binding of property type java.time.Duration in the ISO-8601 form
- Custom endpoints for Spring Boot Actuator using annotations
- Exposing a custom Spring Boot Actuator endpoint
- Extending a custom endpoint with a specialized implementation for the web
- Connecting to a custom endpoint using monitoring and management tools
- Custom metrics using Micrometer
- Custom health indicator
- Using the HTTP/2 protocol
- Securing applications with Spring Security
- The next milestone
- Migration
- Using the correct JDK and JVM
- Running on Java 9
- Tackling JAXBException
- Using the correct AspectJ version
- Being aware of limitations on Apache Cassandra drivers
- Being aware of issues with the Maven Surefire Plugin
- Using the upgraded Spring Framework 5.0
- Modified CORS support behavior
- Removed packages, classes, and methods
- Dropped support for frameworks
- Using the updated configuration properties
- Using the changed servlet-specific server properties
- Using the modified template engine extension handling
- Using the changed actuator configuration properties.
- Using the changed actuator base path
- Using the renamed actuator endpoints
- Using the changed Embedded Container Configuration
- Using the changed default behavior for path mapping
- Using the changed default dispatcher types for the servlet filter
- Using the modified transitive dependency to spring-boot-web-starter
- Using the changed default proxying strategy
- Using the modified configuration location strategy
- Using the changed Jackson/JSON support
- Using the changed Spring Boot Actuator security
- Using the changed HikariCP default connection pool for JPA
- Using the changed default database initialization strategy
- Using the changed database schema creation strategy
- Using the changed testing support
- Using the revised Spring Security
- Using the changed default security auto-configuration strategy
- Spring Security OAuth2 is migrated to Spring Security core
- Using the AuthenticationManager bean
- Understanding removed features
- Summary
- Questions
- Further reading
- Chapter 2: Building a Basic Web Application
- Technical requirements
- Getting started
- Web application architecture
- Workflow of Spring Web MVC
- Requirements for our web application
- The use case diagram
- Using Spring Data JPA for persistence
- Understanding the Java Persistence API (JPA)
- Understanding Spring Data JPA
- Class diagram for the domain model
- Implementation of the domain model using JPA annotations
- Setting up dependencies and configuration
- Implementing the domain model
- Implementation of Spring Data JPA repositories
- Testing Spring Data JPA repositories
- Using Spring Boot Devtools for database visualization
- Using Services to encapsulate business logic
- Testing Services
- Using Spring Thymeleaf for the view
- Understanding template engines
- Spring Thymeleaf
- UI design for the Retro Board.
- UI implementation for the Retro Board using Spring Thymeleaf
- Using Spring Web MVC with servlet 3.x for the controller
- Implementation of Controllers annotations
- Testing controllers
- Using Spring Security for authentication and authorization
- Demonstrating the Retro Board
- Summary
- Questions
- Further reading
- Chapter 3: Building a Simple Blog Management System
- Technical requirements
- Getting started
- Web application architecture
- Workflow of Spring WebFlux
- Requirements of the Bloggest system
- The use case diagram
- Using Spring Data Elasticsearch for persistence
- Understanding Elasticsearch
- Understanding Spring Data Elasticsearch
- Class diagram for the domain model
- Implementation of the domain model using Spring Data Elasticsearch annotations
- Setting up dependencies and configuration classes
- Implementing the domain model
- Implementation of Spring Data Elasticsearch repositories
- Using Apache FreeMarker for the view
- Understanding template engines
- Apache FreeMarker
- UI design for Bloggest
- UI implementation for Bloggest using Apache FreeMarker
- Implementing a common layout using Apache FreeMarker
- Implementing a List Articles page
- Implementing a Create Article page
- Implementing a Show Article page
- Implementing an error page
- Using Spring WebFlux for controller
- Implementation of controllers
- Implementation of ControllerAdvice
- Using Spring Security for authentication and authorization
- Demonstrating Bloggest
- Summary
- Questions
- Further reading
- Chapter 4: Introduction to Kotlin
- Technical requirements
- Getting started with Kotlin
- Default imports
- Basic data types
- Numeric data types
- Learning numeric literals
- Numeric representation
- Numeric operations
- String literals
- The syntax for Kotlin code
- The Kotlin packages.
- String interpolation
- Functions in Kotlin
- Variables in Kotlin
- Conditional statements
- The if statement
- The when statement
- Type checking and automatic casting
- Nullable values and compile-time null safety
- The for loop
- The for loop with an array
- The for loop with a collection
- The for loop with a value range
- The while loop
- Object-oriented programming with Kotlin
- Learning about visibility modifiers
- Classes in Kotlin
- Abstract classes
- Concrete classes
- The concept of interfaces in Kotlin
- Learning about extensions
- Generic types in Kotlin
- Enums in Kotlin
- Objects in Kotlin
- Object expressions
- Object declarations
- Companion objects
- Advanced programming with Kotlin
- Functions
- Infix notation in functions
- Local functions in Kotlin
- Default arguments in functions
- Named arguments in functions
- Generics in functions
- Variable number of arguments (vararg) in functions
- Summary
- Questions
- Further reading
- Chapter 5: Building a Reactive Movie Rating API Using Kotlin
- Technical requirements
- Getting started
- REST architecture
- Requirements of REST architecture
- The use case diagram
- Using Spring Data MongoDB for persistence
- Understanding MongoDB
- Understanding Spring Data MongoDB
- Class diagram for the domain model
- Implementation of the domain model using Spring Data MongoDB annotations
- Setting up dependencies and configuration
- Implementing the domain model
- Implementing of Spring Data MongoDB repositories
- Using a service to encapsulate business logic
- Testing Services
- Using Spring WebFlux for controllers
- Implementation of controllers
- Testing controllers
- Using Spring Security for basic authorization
- Demonstrating Moviee
- Integration testing
- Demonstrating the use of Postman
- Accessing the List Movies endpoint.
- Accessing the Get Movie endpoint
- Accessing the Get Movie endpoint with an invalid Movie ID
- Accessing the Rate Movie endpoint
- Summary
- Questions
- Further reading
- Chapter 6: Building an API with Reactive Microservices
- Technical requirements
- Getting started
- Microservices architecture
- The requirements of microservices architecture
- The use case diagram
- The project structure to develop microservices
- Using Spring Data Redis for persistence
- Understanding Redis
- Understanding Spring Data Redis
- Class diagram for the domain model
- Implementation of domain model using Spring Data Redis annotations
- Setting up dependencies and configuration
- Implementing the domain model
- Implementation of Spring Data Redis repositories
- Using a Service to encapsulate business logic
- Using Spring WebFlux for a controller
- Implementation of controllers
- Using asynchronous data transfer for cross-microservice communication
- Asynchronous data transfer using Redis
- Using Docker to support microservices
- Understanding Docker
- Using Maven to build Docker images
- Building a system of microservices with Docker
- Deploying microservices with Docker
- Demonstrating Saber
- Submitting to the Register Taxi endpoint
- Submitting location to update Taxi Location endpoint
- Submitting to Update Taxi Status endpoint
- Accessing the Get Taxi Status endpoint
- Accessing the GET available Taxis endpoint
- Submitting to Book Taxi endpoint
- Submitting to Accept Taxi Booking endpoint
- Submitting to cancel Taxi Booking endpoint
- Accessing Taxi Bookings endpoint
- Summary
- Questions
- Further reading
- Chapter 7: Building a Twitter Clone with Spring Boot
- Technical requirements
- Getting started
- Beginning with the Tweety architecture
- Tweety requirements
- The use case diagram.
- Using Spring Data JPA for persistence.