Category: Spring Boot

Support for Structured Logging is a new Spring Boot feature introduced with the Spring Boot 3.4.0 release. Structured Logging is fairly common to use in distributed environments where you are using some type of consolidated logging. Typically, you will use a JSON log format to allow for easy consolidated log searches with indexing tools such […]Continue reading

Introduction As a Java developer, a common task you’ll encounter is converting between Java objects and JSON. The Jackson library is a powerful and widely used tool for this purpose. Whether you’re building RESTful APIs, microservices, or simply handling JSON data in your application, Jackson’s ObjectMapper class makes it easy to serialize and deserialize Java […]Continue reading

Spring AI is the latest project from the Spring Team. Working with Large Language Models (LLMs) has traditionally been the domain of languages such as Python and Javascript. Spring AI is changing this and is enabling integration with generative AI with Java and Spring. In this post, we will take an initial look at using […]Continue reading

JSON Logging in Spring Boot simplifies setup, especially for applications in distributed environments like Kubernetes. Consolidated logging requires searchable logs, often formatted in JSON. Logstash is a popular choice. A basic Logback configuration supports JSON logging, aiding development with profile flexibility. Testing can be done by generating log messages easily.

With techniques such as continuous delivery becoming more mainstream, automated database migrations are a baseline capability for many software teams. Flyway is a tool that anyone with basic knowledge of SQL can use to set up and maintain database schemas. Database migration with Flyway is gaining high traction in the industry primarily due to its […]Continue reading

Spring Web applications and RESTful services contain controllers responsible to process requests and send back responses. At times you might need to perform certain operations on client requests before it reaches the controller. Similarly, you might need to perform operations on responses sent back by controllers to clients. You can achieve this using filters in […]Continue reading

Distributed Microservices Systems typically comprise a large number of smaller services. These services communicate with each other to perform operations. In order to communicate, one service needs the address of the other service to call. However, service addresses are dynamic in modern microservices systems. For example, if a service is running on one IP and […]Continue reading