Skip to main content

Posts

Understanding @Validated in Spring Boot: A Complete Guide

In real-world applications, we often deal with user input—whether it’s coming from APIs, forms, or service calls. Validating this input is critical to ensure our application behaves correctly and securely. Spring Boot makes this easier with annotations like @Valid and @Validated . In this blog, we’ll dive deep into what @Validated is, how it works, and when to use it —with examples you can apply directly to your projects. 📌 What is @Validated ? @Validated is a Spring Framework annotation ( org.springframework.validation.annotation.Validated ) that enables bean validation (JSR-303/JSR-380, powered by Hibernate Validator by default). It tells Spring to: Validate incoming request data (DTOs). Validate method arguments in services. Enforce constraints like @NotNull , @Email , @Size , etc. 📝 Example 1: Using @Validated in a REST Controller Suppose you have a REST endpoint to create a user: @RestController @RequestMapping("/api/users") public class UserController...
Recent posts

📘 Understanding MDC and NDC in Logging

When debugging production issues, logs are your best friends. But in multi-threaded applications or systems handling multiple requests, logs can quickly become messy and hard to trace. This is where MDC (Mapped Diagnostic Context) and NDC (Nested Diagnostic Context) come in. 🔹 What is MDC? MDC (Mapped Diagnostic Context) allows you to store key-value pairs that are automatically added to your log entries. 👉 Example use case: Storing userId , transactionId , or requestId in MDC so every log line contains this contextual information. This makes tracing requests across distributed services much easier. Code Example (SLF4J with Logback): import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; public class MDCExample { private static final Logger log = LoggerFactory.getLogger(MDCExample.class); public static void main(String[] args) { MDC.put("userId", "12345"); MDC.put("transactionId", "...