Muutke küpsiste eelistusi

Beginning Spring Data: Data Access and Persistence for Spring Framework 6 and Boot 3 1st ed. [Pehme köide]

  • Formaat: Paperback / softback, 417 pages, kõrgus x laius: 254x178 mm, kaal: 832 g, 136 Illustrations, black and white; XXII, 417 p. 136 illus., 1 Paperback / softback
  • Ilmumisaeg: 29-Dec-2022
  • Kirjastus: APress
  • ISBN-10: 1484287630
  • ISBN-13: 9781484287637
Teised raamatud teemal:
  • Pehme köide
  • Hind: 53,33 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 62,74 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 417 pages, kõrgus x laius: 254x178 mm, kaal: 832 g, 136 Illustrations, black and white; XXII, 417 p. 136 illus., 1 Paperback / softback
  • Ilmumisaeg: 29-Dec-2022
  • Kirjastus: APress
  • ISBN-10: 1484287630
  • ISBN-13: 9781484287637
Teised raamatud teemal:
Use the popular Spring Data project for data access and persistence using various Java-based APIs such as JDBC, JPA, MongoDB, and more. 

This book shows how to easily incorporate data persistence and accessibility into your microservices, cloud-native applications, and monolithic enterprise applications. It also teaches you how to perform unit and performance testing of a component that accesses a database. And it walks you through an example of each type of SQL and NoSQL database covered.  

After reading this book, you’ll be able to create an application that interacts with one or multiple types of databases, and conduct unit and performance testing to analyze possible problems. Source code is available on GitHub.

What You’ll Learn
  • Become familiar with the Spring Data project and its modules for data access and persistence
  • Explore various SQL and NoSQL persistence types
  • Uncover the persistence and domain models, and handle transaction management for SQL
  • Migrate database changes and versioning for SQL
  • Dive into NoSQL persistence with Redis, MongoDB, Neo4j, and Cassandra
  • Handle reactive database programming and access with R2DBC and MongoDB
  • Conduct unit, integration, and performance testing, and more

Who This Book Is For

Experienced Java software application developers; programmers with experience using the Spring framework or the Spring Boot micro framework


Beginning-Intermediate user level
About the Author xi
About the Technical Reviewer xiii
Acknowledgments xv
Introduction xvii
Part I Introduction
1(84)
Chapter 1 Application Architecture
3(34)
Why Persistence Is So Important
3(1)
The History of Persistence
4(1)
JDBC
5(7)
EJB
12(4)
JPA
16(3)
Spring Data
19(1)
Object Mapping
20(2)
Repository Support
22(2)
Architectures Types
24(1)
Layers
24(2)
Hexagonal
26(3)
Persistence Design Patterns
29(1)
Data Access Object (DAO)
29(3)
Repository Pattern
32(2)
Data Transfer Object (DTO)
34(1)
Specification Pattern
35(1)
Other Patterns
36(1)
Summary
36(1)
Chapter 2 Spring Basics and Beyond
37(24)
Spring Basics
37(2)
Spring Boot
39(1)
Basic Application Setup
40(1)
Creating an API Using Spring Initialzr
41(4)
Creating an API in the IDE
45(2)
How to Run the Application
47(10)
Best Practices
57(1)
Preventing Conflicts with the Dependencies
57(2)
Documenting the Endpoints
59(1)
Logging All the Details
59(1)
Maintaining and Updating the Dependencies
60(1)
Summary
60(1)
Chapter 3 Spring Data and Different Types of Persistence
61(24)
What Is Spring Data?
61(3)
How Does Spring Data Work?
64(1)
Spring Data Code Example
64(6)
Core Concepts
70(14)
Summary
84(1)
Part II SQL Persistence
85(102)
Chapter 4 Persistence and Domain Model
87(56)
JPA Configuration Using Annotations
87(4)
Entity
91(16)
Types of Relationships
107(13)
Types of Inherence
120(12)
Listening and Auditing Events
132(3)
Validating the Schema
135(6)
Summary
141(2)
Chapter 5 Transaction Management
143(20)
What Is a Transaction?
145(1)
What Is ACID?
146(1)
Isolation Problems
147(3)
Isolation Levels
150(2)
Locking Types
152(1)
How Do These Concepts Work in Spring Data?
152(3)
Transactional Properties
155(3)
Transaction Template
158(1)
Optimistic Locking
159(3)
Summary
162(1)
Chapter 6 Versioning or Migrating Changes
163(24)
Versioning Changes in a Database
163(3)
Libraries That Implement Versioning
166(4)
Which Library Does the Versioning?
170(1)
Integrating Libraries in Spring Boot
170(8)
Best Practices
178(1)
Feature Flags
179(2)
Implementing Feature Flags
181(4)
Best Practices
185(1)
Summary
185(2)
Part III NoSQL Persistence
187(78)
Chapter 7 Redis: Key/Value Database
189(24)
What Is Redis?
189(4)
Spring Data Structures
193(2)
Database and Connection Settings
195(5)
Connecting with Primary/Secondary Nodes
200(3)
Object Mapping and Conversion
203(3)
Defining Custom Repositories
206(3)
Queries by Example
209(3)
Summary
212(1)
Chapter 8 MongoDB: Document Database
213(18)
What Is a Document Store?
213(1)
Possible Uses Cases
214(1)
Implementations
215(1)
What Is MongoDB?
216(3)
Introduction Spring Data Mongo
219(1)
Database and Connection Settings
219(5)
Access Using Repositories
224(2)
Defining Queries
226(1)
Using MongoTemplate with Custom Repositories
227(3)
Summary
230(1)
Chapter 9 Neo4j: Graph Database
231(18)
What Is a Graph Database?
231(1)
Possible Uses Cases
232(1)
Implementations
233(1)
What Is Neo4j?
234(2)
Introduction Spring Data Neo4j
236(1)
Database and Connection Settings
236(5)
Access Using Repositories
241(6)
Summary
247(2)
Chapter 10 Cassandra: Wide-Column Database
249(16)
What Is Cassandra?
249(3)
Structure
252(1)
Configuration
253(1)
Database and Connection Settings
253(7)
Defining Custom Repositories
260(3)
Defining a HL
263(1)
Summary
264(1)
Part IV Advanced testing and best practices
265(76)
Chapter 11 Reactive Access
267(10)
What Is Reactive Access?
268(1)
Modifying Queries to Be Reactive
269(1)
Non-Relational Databases
270(2)
Relational Databases
272(3)
Considerations
275(1)
Summary
275(2)
Chapter 12 Unit and Integration Testing
277(22)
Unit Testing with Mocks
278(3)
Integration Testing with a Database
281(1)
Testcontainers
281(2)
Testcontainers vs. Embedded
283(1)
Using Testcontainers
284(9)
Multiple Integration Tests
293(1)
Initialization Strategies
294(1)
Potential Problems
295(3)
Summary
298(1)
Chapter 13 Detecting Performance Issues
299(26)
Low-Performance Problems
300(1)
Detecting Problems
301(1)
Analyzing Query Performance
301(4)
Analyzing Query Complexity
305(5)
Checking the Performance of an Endpoint
310(13)
Summary
323(2)
Chapter 14 Best Practices
325(16)
Compressing Information
325(7)
Reducing Transferred Information
332(1)
Using Optional in Custom Queries
332(1)
Using Lazy in Relationships
332(1)
Persisting Multiples Elements
333(1)
Using Master/Slave or Replicas
333(1)
Using Cache to Reduce Access
334(6)
Summary
340(1)
Appendix A Setting up Environment Tools 341(8)
Appendix B Recommended and Alternative Tools 349(14)
Appendix C Opening a Project 363(4)
Appendix D Install and Configure a Relational Database 367(16)
Appendix E Installing and Configuring Non-Relational Databases 383(24)
Appendix F Further Reading 407(4)
Index 411
Andres Sacco is a Technical Lead at Prisma. He has experience using languages such as Java, PHP, and NodeJs. He also has experience using Spring. In his previous job, Andres helped find alternative ways to optimize the transference of data between microservices, which reduced the cost of infrastructure by 55%. He also has written internal courses about new technologies and articles on Medium. Andres shares his knowledge of using different types of databases, depending on the situation. He has experience with various types of testing, to search for problems in queries or repositories that access the database.