Christian Ullenboom
Spring Boot 3 and Spring Framework 6
Christian Ullenboom
Spring Boot 3 and Spring Framework 6
- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
Say goodbye to dependencies, bogged-down code, and inflexibility! With the Spring framework and Spring Boot, you'll painlessly create Java applications that are production ready. Start with the basics: containers for Spring-managed beans, Spring framework modules, and proxies. Then learn to connect to relational databases, implement Jakarta Persistence, use Spring Data JPA, and work with NoSQL databases. Get the right know-how for modern software development with Spring and Java!
Highlights include:
1) Containers 2) Modules 3) Proxies 4) Dependency injection 5) Caching 6) RESTful web…mehr
Andere Kunden interessierten sich auch für
- Christian UllenboomSpring Boot 3 und Spring Framework 649,90 €
- Marten DeinumSpring 6 Recipes49,99 €
- Philip AckermannJavaScript45,99 €
- Felipe GutierrezIntroducing Spring Framework 644,99 €
- Tarun TelangLearn Microservices with Spring Boot 361,99 €
- Bernd ÖgglGit37,99 €
- Veit SteinkampPython for Engineering and Scientific Computing55,99 €
-
-
Say goodbye to dependencies, bogged-down code, and inflexibility! With the Spring framework and Spring Boot, you'll painlessly create Java applications that are production ready. Start with the basics: containers for Spring-managed beans, Spring framework modules, and proxies. Then learn to connect to relational databases, implement Jakarta Persistence, use Spring Data JPA, and work with NoSQL databases. Get the right know-how for modern software development with Spring and Java!
Highlights include:
1) Containers
2) Modules
3) Proxies
4) Dependency injection
5) Caching
6) RESTful web services
7) Security
8) Deployment
9) Databases
10) Jakarta Persistence
11) Spring Data JPA
12) Spring Web MVC
Highlights include:
1) Containers
2) Modules
3) Proxies
4) Dependency injection
5) Caching
6) RESTful web services
7) Security
8) Deployment
9) Databases
10) Jakarta Persistence
11) Spring Data JPA
12) Spring Web MVC
Produktdetails
- Produktdetails
- Rheinwerk Computing
- Verlag: Rheinwerk Computing / Rheinwerk Verlag
- Artikelnr. des Verlages: 459/22475
- Seitenzahl: 934
- Erscheinungstermin: 6. März 2024
- Englisch
- Abmessung: 252mm x 179mm x 46mm
- Gewicht: 1590g
- ISBN-13: 9781493224753
- ISBN-10: 1493224751
- Artikelnr.: 68546856
- Rheinwerk Computing
- Verlag: Rheinwerk Computing / Rheinwerk Verlag
- Artikelnr. des Verlages: 459/22475
- Seitenzahl: 934
- Erscheinungstermin: 6. März 2024
- Englisch
- Abmessung: 252mm x 179mm x 46mm
- Gewicht: 1590g
- ISBN-13: 9781493224753
- ISBN-10: 1493224751
- Artikelnr.: 68546856
... Preface ... 25
... What Is Spring Boot? ... 25
... Prior Knowledge and Target Group ... 25
... Date4u Demo Application, Tasks, and Solutions ... 25
... Chapter Organization ... 26
... The * Sections ... 27
... Which Java Version Is Used in the Book? ... 27
... Required Software ... 27
... Development Environment ... 28
... Conventions ... 28
... Program Listings ... 29
... Download and Online Information ... 30
... About the Author ... 31
... Feedback ... 32
1 ... Introduction ... 33
1.1 ... History of Spring Framework and Your First Spring Project ... 33
1.2 ... Spring Boot ... 37
1.3 ... Spring Boot Project: Dependencies and Starter ... 53
1.4 ... Getting Started with Configurations and Logging ... 61
1.5 ... Summary ... 65
2 ... Containers for Spring-Managed Beans ... 67
2.1 ... Spring Container ... 67
2.2 ... Package Structure of the Date4u Application ... 74
2.3 ... Pick Up Spring-Managed Beans through Classpath Scanning ... 76
2.4 ... Interactive Applications with the Spring Shell ... 89
2.5 ... Injecting Dependencies ... 95
2.6 ... Configuration Classes and Factory Methods ... 111
2.7 ... Abstraction and Qualifications ... 127
2.8 ... Beans Lifecycle ... 146
2.9 ... Annotations from JSR 330, Dependency Injection for Java * ... 169
2.10 ... Auto-Configuration ... 170
2.11 ... Spring Expression Language ... 185
2.12 ... Summary ... 190
3 ... Selected Modules of the Spring Framework ... 191
3.1 ... Helper Classes in Spring Framework ... 191
3.1.1 ... Components of org.springframework ... 191
3.2 ... External Configuration and the Environment ... 193
3.3 ... At the Beginning and End ... 238
3.4 ... Event Handling ... 247
3.5 ... Resource Abstraction with Resource ... 261
3.6 ... Type Conversion with ConversionService ... 265
3.7 ... Internationalization * ... 283
3.8 ... Test-Driven Development with Spring Boot ... 289
3.9 ... Testing Slices Using a JSON Example * ... 314
3.10 ... Scheduling * ... 324
3.11 ... Types from org.springframework.*.[lang util] ... 328
3.12 ... Summary ... 335
4 ... Selected Proxies ... 337
4.1 ... Proxy Pattern ... 337
4.2 ... Caching ... 343
4.3 ... Asynchronous Calls ... 361
4.4 ... TaskExecutor * ... 369
4.5 ... Spring and Bean Validation ... 374
4.6 ... Spring Retry * ... 387
4.7 ... Summary ... 395
5 ... Connecting to Relational Databases ... 397
5.1 ... Set Up an H2 Database ... 397
5.2 ... Realize Database Accesses with Spring ... 407
5.3 ... Spring Boot Starter JDBC ... 408
5.4 ... JdbcTemplate ... 422
5.5 ... Data Types for Mapping to Results ... 427
5.6 ... NamedParameterJdbcTemplate ... 437
5.7 ... Batch Operations * ... 443
5.8 ... BLOBs and CLOBs * ... 451
5.9 ... Subpackage org.springframework.jdbc.core.simple * ... 455
5.10 ... Package org.springframework.jdbc.object * ... 458
5.11 ... Transactions ... 460
5.12 ... Summary ... 472
6 ... Jakarta Persistence with Spring ... 473
6.1 ... World of Objects and Databases ... 473
6.2 ... Jakarta Persistence ... 479
6.3 ... Spring Data JPA ... 482
6.4 ... Jakarta Persistence Entity Bean ... 485
6.5 ... Jakarta Persistence API ... 492
6.6 ... Jakarta Persistence Query Language (JPQL) ... 498
6.7 ... Call Database Functions and Send Native SQL Queries ... 519
6.8 ... Write Access with the EntityManager in Transactions ... 525
6.9 ... Persistence Context and Other Transaction Controls ... 531
6.10 ... Advanced ORM Metadata ... 535
6.11 ... Relationships between Entities ... 555
6.12 ... FetchType: Lazy and Eager Loading ... 567
6.13 ... Cascading ... 573
6.14 ... Repositories ... 577
6.15 ... Summary ... 585
7 ... Spring Data JPA ... 587
7.1 ... What Tasks Does Spring Data Perform? ... 587
7.2 ... Spring Data Commons: CrudRepository ... 589
7.3 ... Subtypes of CrudRepository ... 594
7.4 ... Paging and Sorting with [List]PagingAndSortingRepository ... 598
7.5 ... QueryByExampleExecutor * ... 608
7.6 ... Formulate Your Own Queries with @Query ... 615
7.7 ... Stored Procedures * ... 624
7.8 ... Derived Query Methods ... 628
7.9 ... Criteria API and JpaSpecificationExecutor ... 635
7.10 ... Alternatives to JDBC Jakarta Persistence ... 647
7.11 ... Good Design with Repositories ... 660
7.12 ... Projections ... 664
7.13 ... [Fetchable]FluentQuery * ... 670
7.14 ... Auditing * ... 672
7.15 ... Incremental Data Migration ... 675
7.16 ... Test the Data Access Layer ... 682
7.17 ... Summary ... 691
8 ... Spring Data for NoSQL Databases ... 693
8.1 ... Not Only SQL ... 693
8.2 ... MongoDB ... 694
8.3 ... Elasticsearch ... 707
8.4 ... Summary ... 719
9 ... Spring Web ... 721
9.1 ... Web Server ... 721
9.2 ... Generate Dynamic Content ... 728
9.3 ... Spring Web MVC ... 732
9.4 ... Hot Code Swapping ... 738
9.5 ... HTTP ... 740
9.6 ... Request Matching ... 742
9.7 ... Send Response ... 745
9.8 ... Evaluate Request ... 755
9.9 ... Type Conversion of the Parameters ... 766
9.10 ... Exception Handling and Error Message ... 775
9.11 ... RESTful API ... 789
9.12 ... Asynchronous Web Requests * ... 806
9.13 ... Spring Data Web Support ... 811
9.14 ... Documentation of a RESTful API with OpenAPI ... 817
9.15 ... Testing the Web Layer ... 825
9.16 ... Best Practices When Using a RESTful API ... 832
9.17 ... Secure Web Applications with Spring Security ... 837
9.18 ... Consume RESTful Web Services ... 867
9.19 ... Summary ... 877
10 ... Logging and Monitoring ... 879
10.1 ... Logging ... 879
10.2 ... Logging Implementation ... 880
10.3 ... Monitor Applications with Spring Boot Actuator ... 885
10.4 ... Micrometer and Prometheus ... 894
10.5 ... Summary ... 900
11 ... Build and Deployment ... 901
11.1 ... Package and Run Spring Boot Programs ... 901
11.2 ... Spring Applications in the OCI Container ... 904
11.3 ... Summary ... 915
A ... Migration from Spring Boot 2 to Spring Boot 3 ... 917
A.1 ... Preparation ... 917
A.2 ... Jakarta EE 9 ... 917
A.3 ... Other Innovations ... 918
A.4 ... Spring-Boot-Properties-Migrator ... 919
A.5 ... Spring Boot Migrator Project ... 919
A.6 ... Dependency Upgrades ... 920
B ... The Author ... 923
... Index ... 925
... What Is Spring Boot? ... 25
... Prior Knowledge and Target Group ... 25
... Date4u Demo Application, Tasks, and Solutions ... 25
... Chapter Organization ... 26
... The * Sections ... 27
... Which Java Version Is Used in the Book? ... 27
... Required Software ... 27
... Development Environment ... 28
... Conventions ... 28
... Program Listings ... 29
... Download and Online Information ... 30
... About the Author ... 31
... Feedback ... 32
1 ... Introduction ... 33
1.1 ... History of Spring Framework and Your First Spring Project ... 33
1.2 ... Spring Boot ... 37
1.3 ... Spring Boot Project: Dependencies and Starter ... 53
1.4 ... Getting Started with Configurations and Logging ... 61
1.5 ... Summary ... 65
2 ... Containers for Spring-Managed Beans ... 67
2.1 ... Spring Container ... 67
2.2 ... Package Structure of the Date4u Application ... 74
2.3 ... Pick Up Spring-Managed Beans through Classpath Scanning ... 76
2.4 ... Interactive Applications with the Spring Shell ... 89
2.5 ... Injecting Dependencies ... 95
2.6 ... Configuration Classes and Factory Methods ... 111
2.7 ... Abstraction and Qualifications ... 127
2.8 ... Beans Lifecycle ... 146
2.9 ... Annotations from JSR 330, Dependency Injection for Java * ... 169
2.10 ... Auto-Configuration ... 170
2.11 ... Spring Expression Language ... 185
2.12 ... Summary ... 190
3 ... Selected Modules of the Spring Framework ... 191
3.1 ... Helper Classes in Spring Framework ... 191
3.1.1 ... Components of org.springframework ... 191
3.2 ... External Configuration and the Environment ... 193
3.3 ... At the Beginning and End ... 238
3.4 ... Event Handling ... 247
3.5 ... Resource Abstraction with Resource ... 261
3.6 ... Type Conversion with ConversionService ... 265
3.7 ... Internationalization * ... 283
3.8 ... Test-Driven Development with Spring Boot ... 289
3.9 ... Testing Slices Using a JSON Example * ... 314
3.10 ... Scheduling * ... 324
3.11 ... Types from org.springframework.*.[lang util] ... 328
3.12 ... Summary ... 335
4 ... Selected Proxies ... 337
4.1 ... Proxy Pattern ... 337
4.2 ... Caching ... 343
4.3 ... Asynchronous Calls ... 361
4.4 ... TaskExecutor * ... 369
4.5 ... Spring and Bean Validation ... 374
4.6 ... Spring Retry * ... 387
4.7 ... Summary ... 395
5 ... Connecting to Relational Databases ... 397
5.1 ... Set Up an H2 Database ... 397
5.2 ... Realize Database Accesses with Spring ... 407
5.3 ... Spring Boot Starter JDBC ... 408
5.4 ... JdbcTemplate ... 422
5.5 ... Data Types for Mapping to Results ... 427
5.6 ... NamedParameterJdbcTemplate ... 437
5.7 ... Batch Operations * ... 443
5.8 ... BLOBs and CLOBs * ... 451
5.9 ... Subpackage org.springframework.jdbc.core.simple * ... 455
5.10 ... Package org.springframework.jdbc.object * ... 458
5.11 ... Transactions ... 460
5.12 ... Summary ... 472
6 ... Jakarta Persistence with Spring ... 473
6.1 ... World of Objects and Databases ... 473
6.2 ... Jakarta Persistence ... 479
6.3 ... Spring Data JPA ... 482
6.4 ... Jakarta Persistence Entity Bean ... 485
6.5 ... Jakarta Persistence API ... 492
6.6 ... Jakarta Persistence Query Language (JPQL) ... 498
6.7 ... Call Database Functions and Send Native SQL Queries ... 519
6.8 ... Write Access with the EntityManager in Transactions ... 525
6.9 ... Persistence Context and Other Transaction Controls ... 531
6.10 ... Advanced ORM Metadata ... 535
6.11 ... Relationships between Entities ... 555
6.12 ... FetchType: Lazy and Eager Loading ... 567
6.13 ... Cascading ... 573
6.14 ... Repositories ... 577
6.15 ... Summary ... 585
7 ... Spring Data JPA ... 587
7.1 ... What Tasks Does Spring Data Perform? ... 587
7.2 ... Spring Data Commons: CrudRepository ... 589
7.3 ... Subtypes of CrudRepository ... 594
7.4 ... Paging and Sorting with [List]PagingAndSortingRepository ... 598
7.5 ... QueryByExampleExecutor * ... 608
7.6 ... Formulate Your Own Queries with @Query ... 615
7.7 ... Stored Procedures * ... 624
7.8 ... Derived Query Methods ... 628
7.9 ... Criteria API and JpaSpecificationExecutor ... 635
7.10 ... Alternatives to JDBC Jakarta Persistence ... 647
7.11 ... Good Design with Repositories ... 660
7.12 ... Projections ... 664
7.13 ... [Fetchable]FluentQuery * ... 670
7.14 ... Auditing * ... 672
7.15 ... Incremental Data Migration ... 675
7.16 ... Test the Data Access Layer ... 682
7.17 ... Summary ... 691
8 ... Spring Data for NoSQL Databases ... 693
8.1 ... Not Only SQL ... 693
8.2 ... MongoDB ... 694
8.3 ... Elasticsearch ... 707
8.4 ... Summary ... 719
9 ... Spring Web ... 721
9.1 ... Web Server ... 721
9.2 ... Generate Dynamic Content ... 728
9.3 ... Spring Web MVC ... 732
9.4 ... Hot Code Swapping ... 738
9.5 ... HTTP ... 740
9.6 ... Request Matching ... 742
9.7 ... Send Response ... 745
9.8 ... Evaluate Request ... 755
9.9 ... Type Conversion of the Parameters ... 766
9.10 ... Exception Handling and Error Message ... 775
9.11 ... RESTful API ... 789
9.12 ... Asynchronous Web Requests * ... 806
9.13 ... Spring Data Web Support ... 811
9.14 ... Documentation of a RESTful API with OpenAPI ... 817
9.15 ... Testing the Web Layer ... 825
9.16 ... Best Practices When Using a RESTful API ... 832
9.17 ... Secure Web Applications with Spring Security ... 837
9.18 ... Consume RESTful Web Services ... 867
9.19 ... Summary ... 877
10 ... Logging and Monitoring ... 879
10.1 ... Logging ... 879
10.2 ... Logging Implementation ... 880
10.3 ... Monitor Applications with Spring Boot Actuator ... 885
10.4 ... Micrometer and Prometheus ... 894
10.5 ... Summary ... 900
11 ... Build and Deployment ... 901
11.1 ... Package and Run Spring Boot Programs ... 901
11.2 ... Spring Applications in the OCI Container ... 904
11.3 ... Summary ... 915
A ... Migration from Spring Boot 2 to Spring Boot 3 ... 917
A.1 ... Preparation ... 917
A.2 ... Jakarta EE 9 ... 917
A.3 ... Other Innovations ... 918
A.4 ... Spring-Boot-Properties-Migrator ... 919
A.5 ... Spring Boot Migrator Project ... 919
A.6 ... Dependency Upgrades ... 920
B ... The Author ... 923
... Index ... 925
... Preface ... 25
... What Is Spring Boot? ... 25
... Prior Knowledge and Target Group ... 25
... Date4u Demo Application, Tasks, and Solutions ... 25
... Chapter Organization ... 26
... The * Sections ... 27
... Which Java Version Is Used in the Book? ... 27
... Required Software ... 27
... Development Environment ... 28
... Conventions ... 28
... Program Listings ... 29
... Download and Online Information ... 30
... About the Author ... 31
... Feedback ... 32
1 ... Introduction ... 33
1.1 ... History of Spring Framework and Your First Spring Project ... 33
1.2 ... Spring Boot ... 37
1.3 ... Spring Boot Project: Dependencies and Starter ... 53
1.4 ... Getting Started with Configurations and Logging ... 61
1.5 ... Summary ... 65
2 ... Containers for Spring-Managed Beans ... 67
2.1 ... Spring Container ... 67
2.2 ... Package Structure of the Date4u Application ... 74
2.3 ... Pick Up Spring-Managed Beans through Classpath Scanning ... 76
2.4 ... Interactive Applications with the Spring Shell ... 89
2.5 ... Injecting Dependencies ... 95
2.6 ... Configuration Classes and Factory Methods ... 111
2.7 ... Abstraction and Qualifications ... 127
2.8 ... Beans Lifecycle ... 146
2.9 ... Annotations from JSR 330, Dependency Injection for Java * ... 169
2.10 ... Auto-Configuration ... 170
2.11 ... Spring Expression Language ... 185
2.12 ... Summary ... 190
3 ... Selected Modules of the Spring Framework ... 191
3.1 ... Helper Classes in Spring Framework ... 191
3.1.1 ... Components of org.springframework ... 191
3.2 ... External Configuration and the Environment ... 193
3.3 ... At the Beginning and End ... 238
3.4 ... Event Handling ... 247
3.5 ... Resource Abstraction with Resource ... 261
3.6 ... Type Conversion with ConversionService ... 265
3.7 ... Internationalization * ... 283
3.8 ... Test-Driven Development with Spring Boot ... 289
3.9 ... Testing Slices Using a JSON Example * ... 314
3.10 ... Scheduling * ... 324
3.11 ... Types from org.springframework.*.[lang util] ... 328
3.12 ... Summary ... 335
4 ... Selected Proxies ... 337
4.1 ... Proxy Pattern ... 337
4.2 ... Caching ... 343
4.3 ... Asynchronous Calls ... 361
4.4 ... TaskExecutor * ... 369
4.5 ... Spring and Bean Validation ... 374
4.6 ... Spring Retry * ... 387
4.7 ... Summary ... 395
5 ... Connecting to Relational Databases ... 397
5.1 ... Set Up an H2 Database ... 397
5.2 ... Realize Database Accesses with Spring ... 407
5.3 ... Spring Boot Starter JDBC ... 408
5.4 ... JdbcTemplate ... 422
5.5 ... Data Types for Mapping to Results ... 427
5.6 ... NamedParameterJdbcTemplate ... 437
5.7 ... Batch Operations * ... 443
5.8 ... BLOBs and CLOBs * ... 451
5.9 ... Subpackage org.springframework.jdbc.core.simple * ... 455
5.10 ... Package org.springframework.jdbc.object * ... 458
5.11 ... Transactions ... 460
5.12 ... Summary ... 472
6 ... Jakarta Persistence with Spring ... 473
6.1 ... World of Objects and Databases ... 473
6.2 ... Jakarta Persistence ... 479
6.3 ... Spring Data JPA ... 482
6.4 ... Jakarta Persistence Entity Bean ... 485
6.5 ... Jakarta Persistence API ... 492
6.6 ... Jakarta Persistence Query Language (JPQL) ... 498
6.7 ... Call Database Functions and Send Native SQL Queries ... 519
6.8 ... Write Access with the EntityManager in Transactions ... 525
6.9 ... Persistence Context and Other Transaction Controls ... 531
6.10 ... Advanced ORM Metadata ... 535
6.11 ... Relationships between Entities ... 555
6.12 ... FetchType: Lazy and Eager Loading ... 567
6.13 ... Cascading ... 573
6.14 ... Repositories ... 577
6.15 ... Summary ... 585
7 ... Spring Data JPA ... 587
7.1 ... What Tasks Does Spring Data Perform? ... 587
7.2 ... Spring Data Commons: CrudRepository ... 589
7.3 ... Subtypes of CrudRepository ... 594
7.4 ... Paging and Sorting with [List]PagingAndSortingRepository ... 598
7.5 ... QueryByExampleExecutor * ... 608
7.6 ... Formulate Your Own Queries with @Query ... 615
7.7 ... Stored Procedures * ... 624
7.8 ... Derived Query Methods ... 628
7.9 ... Criteria API and JpaSpecificationExecutor ... 635
7.10 ... Alternatives to JDBC Jakarta Persistence ... 647
7.11 ... Good Design with Repositories ... 660
7.12 ... Projections ... 664
7.13 ... [Fetchable]FluentQuery * ... 670
7.14 ... Auditing * ... 672
7.15 ... Incremental Data Migration ... 675
7.16 ... Test the Data Access Layer ... 682
7.17 ... Summary ... 691
8 ... Spring Data for NoSQL Databases ... 693
8.1 ... Not Only SQL ... 693
8.2 ... MongoDB ... 694
8.3 ... Elasticsearch ... 707
8.4 ... Summary ... 719
9 ... Spring Web ... 721
9.1 ... Web Server ... 721
9.2 ... Generate Dynamic Content ... 728
9.3 ... Spring Web MVC ... 732
9.4 ... Hot Code Swapping ... 738
9.5 ... HTTP ... 740
9.6 ... Request Matching ... 742
9.7 ... Send Response ... 745
9.8 ... Evaluate Request ... 755
9.9 ... Type Conversion of the Parameters ... 766
9.10 ... Exception Handling and Error Message ... 775
9.11 ... RESTful API ... 789
9.12 ... Asynchronous Web Requests * ... 806
9.13 ... Spring Data Web Support ... 811
9.14 ... Documentation of a RESTful API with OpenAPI ... 817
9.15 ... Testing the Web Layer ... 825
9.16 ... Best Practices When Using a RESTful API ... 832
9.17 ... Secure Web Applications with Spring Security ... 837
9.18 ... Consume RESTful Web Services ... 867
9.19 ... Summary ... 877
10 ... Logging and Monitoring ... 879
10.1 ... Logging ... 879
10.2 ... Logging Implementation ... 880
10.3 ... Monitor Applications with Spring Boot Actuator ... 885
10.4 ... Micrometer and Prometheus ... 894
10.5 ... Summary ... 900
11 ... Build and Deployment ... 901
11.1 ... Package and Run Spring Boot Programs ... 901
11.2 ... Spring Applications in the OCI Container ... 904
11.3 ... Summary ... 915
A ... Migration from Spring Boot 2 to Spring Boot 3 ... 917
A.1 ... Preparation ... 917
A.2 ... Jakarta EE 9 ... 917
A.3 ... Other Innovations ... 918
A.4 ... Spring-Boot-Properties-Migrator ... 919
A.5 ... Spring Boot Migrator Project ... 919
A.6 ... Dependency Upgrades ... 920
B ... The Author ... 923
... Index ... 925
... What Is Spring Boot? ... 25
... Prior Knowledge and Target Group ... 25
... Date4u Demo Application, Tasks, and Solutions ... 25
... Chapter Organization ... 26
... The * Sections ... 27
... Which Java Version Is Used in the Book? ... 27
... Required Software ... 27
... Development Environment ... 28
... Conventions ... 28
... Program Listings ... 29
... Download and Online Information ... 30
... About the Author ... 31
... Feedback ... 32
1 ... Introduction ... 33
1.1 ... History of Spring Framework and Your First Spring Project ... 33
1.2 ... Spring Boot ... 37
1.3 ... Spring Boot Project: Dependencies and Starter ... 53
1.4 ... Getting Started with Configurations and Logging ... 61
1.5 ... Summary ... 65
2 ... Containers for Spring-Managed Beans ... 67
2.1 ... Spring Container ... 67
2.2 ... Package Structure of the Date4u Application ... 74
2.3 ... Pick Up Spring-Managed Beans through Classpath Scanning ... 76
2.4 ... Interactive Applications with the Spring Shell ... 89
2.5 ... Injecting Dependencies ... 95
2.6 ... Configuration Classes and Factory Methods ... 111
2.7 ... Abstraction and Qualifications ... 127
2.8 ... Beans Lifecycle ... 146
2.9 ... Annotations from JSR 330, Dependency Injection for Java * ... 169
2.10 ... Auto-Configuration ... 170
2.11 ... Spring Expression Language ... 185
2.12 ... Summary ... 190
3 ... Selected Modules of the Spring Framework ... 191
3.1 ... Helper Classes in Spring Framework ... 191
3.1.1 ... Components of org.springframework ... 191
3.2 ... External Configuration and the Environment ... 193
3.3 ... At the Beginning and End ... 238
3.4 ... Event Handling ... 247
3.5 ... Resource Abstraction with Resource ... 261
3.6 ... Type Conversion with ConversionService ... 265
3.7 ... Internationalization * ... 283
3.8 ... Test-Driven Development with Spring Boot ... 289
3.9 ... Testing Slices Using a JSON Example * ... 314
3.10 ... Scheduling * ... 324
3.11 ... Types from org.springframework.*.[lang util] ... 328
3.12 ... Summary ... 335
4 ... Selected Proxies ... 337
4.1 ... Proxy Pattern ... 337
4.2 ... Caching ... 343
4.3 ... Asynchronous Calls ... 361
4.4 ... TaskExecutor * ... 369
4.5 ... Spring and Bean Validation ... 374
4.6 ... Spring Retry * ... 387
4.7 ... Summary ... 395
5 ... Connecting to Relational Databases ... 397
5.1 ... Set Up an H2 Database ... 397
5.2 ... Realize Database Accesses with Spring ... 407
5.3 ... Spring Boot Starter JDBC ... 408
5.4 ... JdbcTemplate ... 422
5.5 ... Data Types for Mapping to Results ... 427
5.6 ... NamedParameterJdbcTemplate ... 437
5.7 ... Batch Operations * ... 443
5.8 ... BLOBs and CLOBs * ... 451
5.9 ... Subpackage org.springframework.jdbc.core.simple * ... 455
5.10 ... Package org.springframework.jdbc.object * ... 458
5.11 ... Transactions ... 460
5.12 ... Summary ... 472
6 ... Jakarta Persistence with Spring ... 473
6.1 ... World of Objects and Databases ... 473
6.2 ... Jakarta Persistence ... 479
6.3 ... Spring Data JPA ... 482
6.4 ... Jakarta Persistence Entity Bean ... 485
6.5 ... Jakarta Persistence API ... 492
6.6 ... Jakarta Persistence Query Language (JPQL) ... 498
6.7 ... Call Database Functions and Send Native SQL Queries ... 519
6.8 ... Write Access with the EntityManager in Transactions ... 525
6.9 ... Persistence Context and Other Transaction Controls ... 531
6.10 ... Advanced ORM Metadata ... 535
6.11 ... Relationships between Entities ... 555
6.12 ... FetchType: Lazy and Eager Loading ... 567
6.13 ... Cascading ... 573
6.14 ... Repositories ... 577
6.15 ... Summary ... 585
7 ... Spring Data JPA ... 587
7.1 ... What Tasks Does Spring Data Perform? ... 587
7.2 ... Spring Data Commons: CrudRepository ... 589
7.3 ... Subtypes of CrudRepository ... 594
7.4 ... Paging and Sorting with [List]PagingAndSortingRepository ... 598
7.5 ... QueryByExampleExecutor * ... 608
7.6 ... Formulate Your Own Queries with @Query ... 615
7.7 ... Stored Procedures * ... 624
7.8 ... Derived Query Methods ... 628
7.9 ... Criteria API and JpaSpecificationExecutor ... 635
7.10 ... Alternatives to JDBC Jakarta Persistence ... 647
7.11 ... Good Design with Repositories ... 660
7.12 ... Projections ... 664
7.13 ... [Fetchable]FluentQuery * ... 670
7.14 ... Auditing * ... 672
7.15 ... Incremental Data Migration ... 675
7.16 ... Test the Data Access Layer ... 682
7.17 ... Summary ... 691
8 ... Spring Data for NoSQL Databases ... 693
8.1 ... Not Only SQL ... 693
8.2 ... MongoDB ... 694
8.3 ... Elasticsearch ... 707
8.4 ... Summary ... 719
9 ... Spring Web ... 721
9.1 ... Web Server ... 721
9.2 ... Generate Dynamic Content ... 728
9.3 ... Spring Web MVC ... 732
9.4 ... Hot Code Swapping ... 738
9.5 ... HTTP ... 740
9.6 ... Request Matching ... 742
9.7 ... Send Response ... 745
9.8 ... Evaluate Request ... 755
9.9 ... Type Conversion of the Parameters ... 766
9.10 ... Exception Handling and Error Message ... 775
9.11 ... RESTful API ... 789
9.12 ... Asynchronous Web Requests * ... 806
9.13 ... Spring Data Web Support ... 811
9.14 ... Documentation of a RESTful API with OpenAPI ... 817
9.15 ... Testing the Web Layer ... 825
9.16 ... Best Practices When Using a RESTful API ... 832
9.17 ... Secure Web Applications with Spring Security ... 837
9.18 ... Consume RESTful Web Services ... 867
9.19 ... Summary ... 877
10 ... Logging and Monitoring ... 879
10.1 ... Logging ... 879
10.2 ... Logging Implementation ... 880
10.3 ... Monitor Applications with Spring Boot Actuator ... 885
10.4 ... Micrometer and Prometheus ... 894
10.5 ... Summary ... 900
11 ... Build and Deployment ... 901
11.1 ... Package and Run Spring Boot Programs ... 901
11.2 ... Spring Applications in the OCI Container ... 904
11.3 ... Summary ... 915
A ... Migration from Spring Boot 2 to Spring Boot 3 ... 917
A.1 ... Preparation ... 917
A.2 ... Jakarta EE 9 ... 917
A.3 ... Other Innovations ... 918
A.4 ... Spring-Boot-Properties-Migrator ... 919
A.5 ... Spring Boot Migrator Project ... 919
A.6 ... Dependency Upgrades ... 920
B ... The Author ... 923
... Index ... 925