Mastering Spring Boot 3.0: A comprehensive guide to building scalable and efficient backend systems with Java and Spring

Оглавление⌄
Cover....1 Title Page....2 Copyright and Credits....2 Contributors....4 Table of Contents....8 Preface....14 Part 1: Architectural Foundations....20 Chapter 1: Introduction to Advanced Spring Boot Concepts....22 Technical requirements....23 Why use Spring Boot for advanced projects?....23 The complexity of modern software development....23 The advantages of Spring Boot....23 Embracing the new era – the innovations of Spring Boot 3.0....30 Wrapping up – why Spring Boot 3.0 is your advanced project ally....33 A brief overview of what’s to come....33 Chapter 2, Key Architectural Patterns in Microservices – DDD, CQRS, and Event Sourcing....34 Chapter 3, Reactive REST Development and Asynchronous Systems....34 Chapter 4, Spring Data: SQL, NoSQL, Cache Abstraction, and Batch Processing....35 Chapter 5, Securing Your Spring Boot Applications....36 Chapter 6, Advanced Testing Strategies....36 Chapter 7, Spring Boot 3.0 Features for Containerization and Orchestration....37 Chapter 8, Exploring Event-Driven Systems with Kafka....38 Chapter 9, Enhancing Productivity and Development Simplification....38 Summary....39 Part 2: Architectural Patterns and Reactive Programming....40 Chapter 2: Key Architectural Patterns in Microservices – DDD, CQRS, and Event Sourcing....42 Technical requirements....43 Introduction to architectural patterns in microservices....43 Why do we need an architectural design in the first place?....43 What are design patterns?....44 What are microservices?....44 What are the principles behind microservices?....45 Microservices design patterns....45 Exploring DDD....47 What is a domain exactly?....48 What is DDD?....48 How to define DDD structure?....49 Learning about CQRS....51 What is the context of CQRS?....52 What are best practices and common pitfalls?....52 What are the benefits of the CQRS design pattern?....53 Understanding Event Sourcing....54 Event-Driven Architecture....54 What is Event Sourcing?....55 Differences between Event-Driven Architecture and Event Sourcing....57 A real-world example of the Event Sourcing pattern....58 The relation of Event Sourcing with CQRS....60 A real-world example of CQRS with Event Sourcing....64 Brief overview of other architectural patterns....65 Service Oriented Architecture (SOA) design pattern....65 The Circuit Breaker pattern....66 The Layered design pattern....67 The MVC design pattern....68 The Saga design pattern....69 Summary....71 Chapter 3: Reactive REST Development and Asynchronous Systems....72 Technical requirements....72 Introduction to reactive programming....73 Introducing reactive programming basics....73 Contrasting paradigms – reactive versus traditional programming....74 Exploring the dictionary of reactive programming....75 Identifying opportunities for reactive programming....76 Learning from the field – reactive programming in action....77 Leveraging Spring Boot 3.0 for reactive solutions....78 Wrapping up and looking forward....79 Building a reactive REST API....80 Setting up the development environment....80 Implementing the repository layer....83 Building the reactive REST controller....85 Adding advanced Mono operations....87 Running the Spring Boot application with Gradle and Java 17....88 Conclusion....90 Asynchronous systems and backpressure....91 Diving into backpressure....91 Implementing backpressure in the project....93 Observations and conclusions....96 Summary....96 Part 3: Data Management, Testing, and Security....98 Chapter 4: Spring Data: SQL, NoSQL, Cache Abstraction, and Batch Processing....100 Technical requirements....101 Introduction to Spring Data....101 Understanding the fundamentals and benefits of Spring Data....102 Setting up your Spring Boot project....103 Using Spring Data with SQL databases....105 Integrating PostgreSQL with Spring Boot using Docker....105 Developing complex relationships between entities....107 Implementing practical CRUD operations in the online bookstore....108 NoSQL databases in Spring Boot....111 Exploring the integration of NoSQL databases in Spring Boot....111 Setting up and configuring MongoDB....112 Building the Review object and its repository....113 Implementing a hybrid data model in the online bookstore....114 Spring Boot cache abstraction....115 Understanding cache abstraction....116 Configuring and using cache abstraction in the application....116 In conclusion....118 Spring Boot batch processing....119 Understanding the role of batch processing in Spring Boot....119 Implementing Spring Batch....120 Executing the batch job....123 Data migration and consistency....124 Exploring data migration strategies and tools like Liquibase....124 Practical steps for implementing data migration using Liquibase....125 Implementing migration strategies in the online bookstore....126 Summary....128 Chapter 5: Securing Your Spring Boot Applications....130 Technical requirements....131 Introducing security in Spring Boot 3.0....131 Exploring Spring Boot 3.0’s security features....131 Setting up a basic security configuration....133 Implementing OAuth2 and JWT....135 Configuring OAuth2 with Keycloak....135 Testing our endpoints with an access token....146 Implementing RBAC in Spring Boot....148 Defining roles and permissions in Keycloak....149 Tailoring the book store application for role-based access....151 Summary....158 Chapter 6: Advanced Testing Strategies....160 Technical requirements....161 TDD in Spring Boot....161 Implementing TDD....162 Discussing terminology for unit tests....165 Unit testing of controllers with a security layer....166 Key annotations for Spring MVC controller testing....167 Crafting controller tests with Spring annotations....168 Integration testing – bridging components together....171 Setting up the testing environment....172 Configuring application properties for integration testing....173 Initializing the database with Testcontainers....174 Mocking external services with WireMock....176 Writing integration tests for Author Controller....177 Testing reactive components....178 Setting up the testing environment....178 Preparing mock components....179 Writing test cases....180 Summary....181 Part 4: Deployment, Scalability, and Productivity....182 Chapter 7: Spring Boot 3.0 Features for Containerization and Orchestration....184 Technical requirements....185 Containerization and orchestration in Spring Boot....185 Understanding containerization – your app in a box....185 Reaping the benefits – lighter loads, quicker starts....186 Getting Spring Boot in the game – container-friendly from the start....186 Unleashing Spring Boot superpowers – portability, efficiency, and control....187 Spring Boot and Docker....187 Crafting efficient Docker images with layered jars....188 Simplifying Dockerization with Cloud Native Buildpacks....189 Enhancing graceful shutdown capabilities....190 Optimizing Spring Boot apps for Kubernetes....191 Integrating Kubernetes probes for application health....192 Managing configurations and Secrets with Kubernetes....196 Utilizing profile-specific configurations in Kubernetes....198 Spring Boot Actuator with Prometheus and Grafana....200 Integrating Prometheus for metrics collection....200 Visualizing metrics with Grafana....203 Summary....206 Chapter 8: Exploring Event-Driven Systems with Kafka....208 Technical requirements....209 Introduction to event-driven architecture....209 Setting up Kafka and ZooKeeper for local development....210 Understanding Kafka brokers and their role in event-driven systems....211 Running Kafka and ZooKeeper with Docker....212 Building an event-driven application with Spring Boot messaging....214 Creating a Spring Boot project for Kafka integration....215 Building the producer application....217 Building the consumer application....218 Testing the whole stack – bringing your event-driven architecture to life....220 Monitoring event-driven systems....221 Monitoring your Kafka infrastructure....222 Using CMAK to monitor the Kafka server....223 Summary....226 Chapter 9: Enhancing Productivity and Development Simplification....228 Technical requirements....229 Introducing AOP in Spring Boot....229 Exploring the basics of AOP – join points, pointcuts, advice declarations, and weaving....230 Crafting a logging aspect – a step-by-step example....230 Simplifying HTTP API with the Feign Client....233 What is the Feign Client?....233 Implementing the Feign Client in Spring Boot....233 Advanced Spring Boot auto-configuration....236 What is advanced auto-configuration?....236 Understanding conditional configuration....237 Common pitfalls and best practices....238 Embracing best practices in Spring Boot – AOP, the Feign Client, and advanced auto-configuration....238 Navigating common pitfalls in Spring Boot – AOP, the Feign Client, and advanced auto-configuration....240 Real-world example – incorrectly scoped proxies in AOP....241 Summary....241 Index....244 Other Books You May Enjoy....253
Описание
В этом материале разберём тему: spring.
Mastering Spring Boot 3.0 is your gateway to building scalable and robust backend systems using the latest techniques. Penned by a seasoned software developer with 20+ years of experience in the tech industry, this book follows a hands-on, step-by-step approach to helping you understand Spring Boot concepts and apply them to real-world projects.
Next, you'll focus on the nuances of reactive REST development, delve into advanced testing strategies, and fortify your applications' security. You'll start by exploring key architectural patterns such as DDD, CQRS, and event sourcing. You'll also discover the power of containerization and orchestration with Spring Boot 3.0 and unlock its potential for smooth deployments. Additionally, by integrating Kafka, you'll be able to build robust event-driven systems.
By the end of this book, you'll have become proficient in architectural patterns, testing strategies, and application security. Whether you're an architect, backend developer, or DevOps engineer, this book will help you leverage the advanced features of Spring Boot 3.0 for secure and efficient backend development.
Microservices architects, DevOps engineers, and technical leads who want to enhance their skills in building powerful backend systems with advanced Spring Boot features will also find this book useful. What You Will Learn:Leverage reactive programming to build responsive and resilient applicationsDevelop reactive and asynchronous RESTful services using Spring BootExplore data management using Spring Data for both SQL and NoSQL databasesUtilize the new features in Spring Boot 3.0 that facilitate containerization and orchestrationSecure your Spring Boot applications using various authentication and authorization mechanismsBuild robust event-driven systems by integrating Apache Kafka with Spring BootWho this book is for:If you're a Java developer eager to elevate your skills, then Mastering Spring Boot 3.0 is for you. A foundational understanding of microservices architecture and some experience with RESTful APIs will help you get the most out of this book.
Файл доступен для загрузки ниже.
Поделиться
Частые вопросы
Можно ли скачать «Mastering Spring Boot 3.0: A comprehensive guide to building scalable and efficient backend systems with Java and Spring» бесплатно?
Да, «Mastering Spring Boot 3.0: A comprehensive guide to building scalable and efficient backend systems with Java and Spring» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF, размер файла 2,0 МБ.
Кто автор и когда вышла книга?
автор — Meric Ahmet, издательство Packt Publishing Limited, год выпуска 2024, 256 страниц.
О чём книга «Mastering Spring Boot 3.0: A comprehensive guide to building scalable and efficient backend systems with Java and Spring»?
Mastering Spring Boot 3.0 is your gateway to building scalable and robust backend systems using the latest techniques.