Architecting Spring Boot 4 with Official Spring gRPC Support
For years, the Spring community relied on excellent third-party starters (like net.devh) to bridge the gap between Spring Boot and gRPC. With the evolution of Spring Boot 4 and the…
Navigating the Microservice Maze: Using the Discovery Client for Service Instance Identification
In the world of microservices, applications are broken down into smaller, independent services that communicate with each other over a network. This distributed architecture offers numerous benefits like scalability, resilience,…
Record Patterns in Java 21: Simplifying Data Extraction
Java 21 introduces record patterns, a powerful addition to the pattern matching arsenal. This feature streamlines the extraction of components from record classes, making code more concise and readable. What…
Java Switch Expressions
In Java, switch statements have traditionally been used to evaluate a value and execute different code blocks based on the value’s match with specific cases. However, starting from Java 14,…
Java Compact Number Formatting
Java 12 introduced a new feature known as “Compact Number Formatting” that makes it easier to format numbers in a compact, readable way. This feature is especially useful when dealing…
Effortless API Creation: Generating CRUD Endpoints with Spring Data REST
Building RESTful APIs for your data can often feel like a repetitive task. Defining endpoints, handling HTTP methods (GET, POST, PUT, DELETE), serializing and deserializing data – it all adds…
Java Collectors
Java 8 introduced the Collectors class, which provides a variety of collectors for use with streams. Collectors are used to accumulate the elements of a stream into a single result,…