Hands-on Application Development using Spring Boot PDF
Spring is an excellent framework for developing both web and cloud-native applications. This book on application development using Spring Boot simplifies the process of writing boilerplate code for complex software. It allows developers to concentrate on the application's concept rather than on the internal Java configuration.
This book will guide you on how to make the best use of the strength that Spring Boot provides. You'll gain an understanding of how Spring Boot configuration works in conjunction with application development, including auto-configuration and overriding default configurations. You will learn to develop scalable, dependable microservices to accelerate the development lifecycle of a cloud-based application. Each chapter will walk you through the features of Spring Boot as a Software Development Framework, such as performing Create, Read, Update, and Delete (CRUD) operations on a database and securing web services with appropriate logging.
By the end of this book, you will develop, test, and deploy applications ready for production and how to establish them as cloud-based applications. The readers will also gain the expertise of writing .
Chapter List (204 chapters):
- Chapter 1: Hands-on Application Development using Spring Boot: Building Modern Cloud Native Applications by Learning RESTFul API, Microservices, CRUD Operations, Unit Testing, and Deployment
- Chapter 2: Cover Page
- Chapter 3: Title Page
- Chapter 4: Copyright Page
- Chapter 5: Dedication Page
- Chapter 6: About the Author
- Chapter 7: About the Reviewer
- Chapter 8: Acknowledgements
- Chapter 9: Preface
- Chapter 10: Errata
- Chapter 11: Table of Contents
- Chapter 12: 1. Getting Started with Spring Boot
- Chapter 13: Structure
- Chapter 14: Objectives
- Chapter 15: Introduction to Spring Boot
- Chapter 16: Features of Spring Boot
- Chapter 17: Advantages of Spring Boot
- Chapter 18: Breaking the monolithic way of developing software
- Chapter 19: When to start using microservices?
- Chapter 20: When not to start using microservices?
- Chapter 21: System requirements
- Chapter 22: Setting up the environment
- Chapter 23: Installing Java Development Kit 8 (jdk-8u261-windows-x64)
- Chapter 24: Installing Apache Maven (apache-maven-3.6.3)
- Chapter 25: Installing Gradle (gradle 6.6)
- Chapter 26: Installing Spring Tool Suite (STS 4)
- Chapter 27: The 12-factor app
- Chapter 28: Spring Initializr
- Chapter 29: Conclusion
- Chapter 30: Points to remember
- Chapter 31: Questions
- Chapter 32: 2. Developing Your First Spring Boot Application
- Chapter 33: Structure
- Chapter 34: Objectives
- Chapter 35: Starting with Spring Initializr
- Chapter 36: Build tools – Maven and Gradle
- Chapter 37: Understanding the pom.xml
- Chapter 38: Understanding build.gradle
- Chapter 39: Building an application using Maven
- Chapter 40: Building an application using Gradle
- Chapter 41: Understanding the entry point class and SpringBootApplication annotation
- Chapter 42: Bootstrap ApplicationContext
- Chapter 43: Java configuration
- Chapter 44: XML configuration
- Chapter 45: Annotation configuration
- Chapter 46: Conclusion
- Chapter 47: Points to remember
- Chapter 48: Questions
- Chapter 49: 3. Spring Boot Starter Dependencies and Auto-Configuration
- Chapter 50: Structure
- Chapter 51: Objectives
- Chapter 52: Spring Boot starters
- Chapter 53: Spring Boot starter dependencies and their configuration
- Chapter 54: spring-boot-starter-parent
- Chapter 55: spring-boot-starter-web
- Chapter 56: spring-boot-starter-data-jpa
- Chapter 57: spring-boot-starter-test
- Chapter 58: spring-boot-starter-security
- Chapter 59: spring-boot-starter-actuator
- Chapter 60: spring-boot-starter-logging
- Chapter 61: spring-boot-starter-cache
- Chapter 62: spring-boot-starter-aop
- Chapter 63: Understanding auto-configuration
- Chapter 64: Conditional on class
- Chapter 65: Conditional on bean
- Chapter 66: Conditional on property
- Chapter 67: Conclusion
- Chapter 68: Points to remember
- Chapter 69: Questions
- Chapter 70: 4. Spring Boot Annotations
- Chapter 71: Structure
- Chapter 72: Objectives
- Chapter 73: Java annotations
- Chapter 74: Existence of Spring annotations
- Chapter 75: Spring and Spring Boot annotations
- Chapter 76: Core Spring framework annotations
- Chapter 77: @Bean
- Chapter 78: @Autowired
- Chapter 79: @ComponentScan
- Chapter 80: @Configuration
- Chapter 81: @ConfigurationProperties
- Chapter 82: @TestPropertySource
- Chapter 83: @Lazy
- Chapter 84: @Qualifier
- Chapter 85: @Primary
- Chapter 86: @Value
- Chapter 87: Spring framework stereotype annotations
- Chapter 88: @Component
- Chapter 89: @Controller
- Chapter 90: @Repository
- Chapter 91: @Service
- Chapter 92: Spring Boot annotations
- Chapter 93: @EnableAutoConfiguration
- Chapter 94: @SpringBootApplication
- Chapter 95: @SpringBootConfiguration
- Chapter 96: Spring task execution annotations
- Chapter 97: @Async
- Chapter 98: @EnableScheduling
- Chapter 99: @Scheduled
- Chapter 100: Spring profiles annotations
- Chapter 101: @Profile
- Chapter 102: @ActiveProfiles
- Chapter 103: Jakarta annotations
- Chapter 104: @PreDestroy
- Chapter 105: @PostConstruct
- Chapter 106: Conclusion
- Chapter 107: Points to remember
- Chapter 108: Questions
- Chapter 109: 5. Working with Spring Data JPA and Caching
- Chapter 110: Structure
- Chapter 111: Objective
- Chapter 112: Accessing relational data using JdbcTemplate with the in-memory database
- Chapter 113: Accessing relational data using Spring data JPA with the in-memory database
- Chapter 114: MySQL and its installation
- Chapter 115: Accessing relational data using Spring data JPA with MySQL
- Chapter 116: Query methods in Spring data JPA
- Chapter 117: Caching
- Chapter 118: Conclusion
- Chapter 119: Points to remember
- Chapter 120: Questions
- Chapter 121: 6. Building RESTFul Microservices
- Chapter 122: Structure
- Chapter 123: Objectives
- Chapter 124: Creating RESTful APIs
- Chapter 125: Consuming RESTFul APIs
- Chapter 126: Creating different profiles based on the environment
- Chapter 127: Using Spring Boot actuators for getting telemetry data
- Chapter 128: Custom health check indicators
- Chapter 129: Exception handling using ControllerAdvice
- Chapter 130: Service discovery
- Chapter 131: Using RestTemplate for calling APIs
- Chapter 132: Routing a request via the API gateway with Spring Cloud Gateway
- Chapter 133: Spring Cloud Gateway
- Chapter 134: Conclusion
- Chapter 135: Points to Remember
- Chapter 136: Questions
- Chapter 137: 7. Securing a Web Application
- Chapter 138: Structure
- Chapter 139: Objectives
- Chapter 140: Authentication and authorization concepts
- Chapter 141: Authentication
- Chapter 142: Authorization
- Chapter 143: Spring security filters
- Chapter 144: Enabling username and password security
- Chapter 145: Disable security
- Chapter 146: OAuth security
- Chapter 147: Accessing REST secured APIs with the user role
- Chapter 148: Uploading and downloading files from REST services
- Chapter 149: Conclusion
- Chapter 150: Points to remember
- Chapter 151: Questions
- Chapter 152: 8. Building Resilient System
- Chapter 153: Structure
- Chapter 154: Objectives
- Chapter 155: Client-side load balancing
- Chapter 156: Circuit breaker
- Chapter 157: Implementing Resilience4J
- Chapter 158: Conclusion
- Chapter 159: Points to remember
- Chapter 160: Questions
- Chapter 161: 9. Logging
- Chapter 162: Structure
- Chapter 163: Objective
- Chapter 164: Different ways of logging data
- Chapter 165: Logback
- Chapter 166: Understanding Spring Cloud Sleuth and Zipkin log aggregation
- Chapter 167: Using ELK for analyzing events
- Chapter 168: Conclusion
- Chapter 169: Points to Remember
- Chapter 170: Questions
- Chapter 171: 10. Working with the Swagger API Management Tool
- Chapter 172: Structure
- Chapter 173: Objectives
- Chapter 174: API documentation
- Chapter 175: Implementing Swagger
- Chapter 176: Swagger UI
- Chapter 177: Annotations used in the Swagger documentation
- Chapter 178: Creating models using Swagger Codegen
- Chapter 179: Conclusion
- Chapter 180: Points to remember
- Chapter 181: Questions
- Chapter 182: 11. Testing a Spring Boot Application
- Chapter 183: Structure
- Chapter 184: Objective
- Chapter 185: Unit testing and integration testing
- Chapter 186: Writing a unit test using the JUnit framework
- Chapter 187: Writing a unit test using the Mockito framework
- Chapter 188: Checking code coverage
- Chapter 189: Testing RESTFul web services
- Chapter 190: Cucumber automation testing
- Chapter 191: Conclusion
- Chapter 192: Points to remember
- Chapter 193: Questions
- Chapter 194: 12. Deploying a Spring Boot Application
- Chapter 195: Structure
- Chapter 196: Objectives
- Chapter 197: Docker and containerization
- Chapter 198: Features
- Chapter 199: Setting up Docker
- Chapter 200: Heroku CLI and deployment
- Chapter 201: Conclusion
- Chapter 202: Points to Remember
- Chapter 203: Questions
- Chapter 204: Index