<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Spring Boot 123</title><description>A technical blog covering Spring Boot from the basics to implementation, operations, and design — in plain English.</description><link>https://springboot-123.mizucoffee.com/</link><item><title>How to Write Unit Tests for Controllers Using MockMvc in Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-mockmvc-controller-test-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-mockmvc-controller-test-guide/</guid><description>A guide to writing Controller-specific tests that start the Spring context minimally with @WebMvcTest and verify HTTP requests and responses with MockMvc. Covers combining @MockBean with Mockito, JSON verification with jsonPath, and testing validation errors, with implementation examples.</description><pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Validate Spring Boot @ConfigurationProperties with Bean Validation - Detecting Errors at Startup and Testing</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-configuration-properties-validation-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-configuration-properties-validation-guide/</guid><description>A step-by-step guide to combining @Validated and @NotNull/@Pattern with @ConfigurationProperties to instantly detect misconfiguration at application startup. Covers testing configuration validation with @SpringBootTest.</description><pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Standardize Error Responses with Problem Details (RFC 9457) in Spring Boot 3.x</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-problem-details-rfc9457-error-response-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-problem-details-rfc9457-error-response-guide/</guid><description>Learn how to implement RFC-compliant error responses using the ProblemDetail class and ErrorResponse interface, leveraging the built-in Problem Details (RFC 9457) support introduced in Spring Boot 3.x. Includes migration steps from custom error response formats.</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Configure Spring Boot as an OAuth2 Resource Server - Implementing JWT Validation and Scope-Based Authorization</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-oauth2-resource-server-jwt-validation-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-oauth2-resource-server-jwt-validation-guide/</guid><description>A guide to validating JWTs issued by external IdPs such as Keycloak, Cognito, and Auth0 using Spring Security&apos;s resource server features, and implementing scope- and claim-based authorization.</description><pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Understanding Spring Boot Bean Lifecycle - How to Use @PostConstruct, @PreDestroy, and InitializingBean</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-bean-lifecycle-postconstruct-predestroy/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-bean-lifecycle-postconstruct-predestroy/</guid><description>A visual walkthrough of the Spring Bean lifecycle from creation through initialization to destruction, explaining how to choose between four implementation patterns — @PostConstruct, @PreDestroy, InitializingBean, and DisposableBean — based on your use case.</description><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Encrypt Sensitive Information in Configuration Files Using Jasypt with Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-jasypt-config-encryption-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-jasypt-config-encryption-guide/</guid><description>If you&apos;re concerned about storing database passwords and API keys in plain text in application.yml, Jasypt is an easy solution. This guide covers the full implementation process for production use, from encryption steps using the ENC() wrapper to integration with environment variables and CI.</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Implement Declarative External API Calls with OpenFeign in Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-openfeign-declarative-http-client-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-openfeign-declarative-http-client-guide/</guid><description>A comprehensive implementation guide covering everything from adding the spring-cloud-openfeign dependency and defining @FeignClient interfaces to error handling, timeout configuration, and logging settings. Aimed at developers frustrated by RestTemplate/WebClient boilerplate.</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Use GraphQL with Spring Boot - Spring for GraphQL Basics and When to Use It vs REST API</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-graphql-introduction-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-graphql-introduction-guide/</guid><description>Using Spring for GraphQL in Spring Boot 3.x, this guide covers schema definition, Query and Mutation Resolver implementation, handling N+1 problems with DataLoader, and integration with Spring Security. Includes a comparison with REST API to clarify when to choose GraphQL.</description><pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Use MongoDB with Spring Boot - From Spring Data MongoDB Basics to Queries and Aggregation</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-mongodb-spring-data-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-mongodb-spring-data-guide/</guid><description>A step-by-step guide to integrating MongoDB into a Spring Boot application. A practical guide covering entity definition with @Document, CRUD operations with MongoRepository, query methods, custom queries with MongoTemplate, and Aggregation Pipeline — all through implementation code.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Automate Entity-DTO Mapping with MapStruct in Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-dto-mapping-mapstruct-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-dto-mapping-mapstruct-guide/</guid><description>An implementation guide for auto-generating toDto()/toEntity() methods with MapStruct instead of writing them by hand. Covers adding dependencies, basic @Mapper usage, nested objects, custom conversions, and unit testing.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Spring Boot REST API Versioning Strategies - Choosing Between URL Path, Header, and Content-Type</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-rest-api-versioning-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-rest-api-versioning-guide/</guid><description>Compare three REST API versioning approaches in Spring Boot (URI path, custom header, Accept header) with implementation code. Includes decision criteria for choosing the right strategy for your team&apos;s API characteristics and Swagger UI integration examples.</description><pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Test External API Calls with WireMock in Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-wiremock-external-api-testing-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-wiremock-external-api-testing-guide/</guid><description>A practical guide to integrating WireMock into Spring Boot tests, defining external API stubs at the HTTP level for success cases, error cases, and timeouts. Also covers when to use Mockito vs WireMock.</description><pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Upload and Download Files to AWS S3 with Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-aws-s3-file-storage-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-aws-s3-file-storage-guide/</guid><description>A guide to implementing file upload and download from a Spring Boot application to AWS S3. Covers how to choose between AWS SDK v2 and spring-cloud-aws 3.x, Service implementation with MultipartFile support, presigned URL generation, and IAM role authentication.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Implement Internationalization (i18n) in Spring Boot - Using MessageSource and LocaleResolver</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-i18n-internationalization-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-i18n-internationalization-guide/</guid><description>A comprehensive guide to implementing internationalization in Spring Boot REST APIs using the Accept-Language header. Covers everything from configuring messages.properties and selecting a LocaleResolver, to localizing @Valid validation error messages and returning multilingual error responses with @RestControllerAdvice.</description><pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Output JSON Structured Logs in Spring Boot - Production-Ready Setup with Logstash Encoder and MDC</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-structured-logging-json-log-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-structured-logging-json-log-guide/</guid><description>Step-by-step guide to configuring Spring Boot to output logs in JSON format using logstash-logback-encoder. Covers how to automatically attach request IDs and user IDs via MDC, Spring Boot 3.4 native structured logging support, and environment-based profile switching.</description><pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Achieve Graceful Shutdown and Zero-Downtime Deployment in Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-graceful-shutdown-zero-downtime-deploy/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-graceful-shutdown-zero-downtime-deploy/</guid><description>A practical guide to combining graceful shutdown configuration in Spring Boot 2.3+ with Kubernetes preStop hooks to ensure zero-downtime deployments without dropping in-flight requests.</description><pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Implementing CRUD REST API with Spring Boot - Basic Structure of Controller, Service, and Repository</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-rest-api-crud-tutorial/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-rest-api-crud-tutorial/</guid><description>A step-by-step guide to implementing CRUD (Create, Read, Update, Delete) REST API with Spring Boot. Build the three-layer architecture of Controller, Service, and Repository from scratch, and walk through setting up all four endpoints: GET, POST, PUT, and DELETE.</description><pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Implementing Kafka Producer and Consumer with Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-kafka-producer-consumer-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-kafka-producer-consumer-guide/</guid><description>A hands-on guide to implementing Kafka Producer and Consumer from scratch in a Spring Boot application using spring-kafka. Covers the basics of KafkaTemplate and @KafkaListener, through to error handling, retries, and Dead Letter Topics, with a focus on code examples.</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Spring Security Method Security - How to Implement RBAC with @PreAuthorize</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-method-security-preauthorize-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-method-security-preauthorize-guide/</guid><description>Learn how to implement method-level Role-Based Access Control (RBAC) using @PreAuthorize/@PostAuthorize/@Secured in Spring Boot with practical code examples. Master fine-grained authorization control that cannot be achieved with SecurityFilterChain alone.</description><pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate></item><item><title>How to Implement Real-Time Communication with WebSocket in Spring Boot - Basics of STOMP and SockJS</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-websocket-real-time-messaging-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-websocket-real-time-messaging-guide/</guid><description>Step-by-step guide to building a broadcast-style chat feature from scratch using Spring Boot + STOMP + SockJS. Covers @MessageMapping, SimpMessagingTemplate, and integration with Spring Security in a practical way.</description><pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate></item><item><title>How to Use Redis with Spring Boot - Implementation Patterns for Session Management, Caching, and Pub/Sub</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-redis-integration-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-redis-integration-guide/</guid><description>Covers everything from basic RedisTemplate operations using spring-boot-starter-data-redis, to externalizing sessions with Spring Session, configuring Redis as a @Cacheable backend, and implementing Pub/Sub — organized by use case.</description><pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Spring Boot CORS Configuration: @CrossOrigin vs WebMvcConfigurer</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-cors-configuration-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-cors-configuration-guide/</guid><description>Fix CORS errors in Spring Boot REST APIs. Covers three approaches — @CrossOrigin, WebMvcConfigurer, and SecurityFilterChain — with examples for React/Vue frontends and Spring Security integration.</description><pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate></item><item><title>How to Auto-Generate REST API Documentation Using OpenAPI (Swagger UI) with Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-openapi-swagger-ui-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-openapi-swagger-ui-guide/</guid><description>A practical guide covering the introduction of springdoc-openapi, enhancing documentation with annotations, configuring Bearer token for JWT-authenticated endpoints, and YAML output.</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate></item><item><title>How to Solve the N+1 Problem in Spring Data JPA - When to Use @EntityGraph vs JOIN FETCH</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-data-jpa-performance-optimization/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-data-jpa-performance-optimization/</guid><description>A practical guide covering how to detect the N+1 problem in Spring Data JPA and how to resolve it using @EntityGraph and JOIN FETCH with real examples. Covers Lazy/Eager Loading configuration and batch fetch optimization techniques useful in production environments.</description><pubDate>Thu, 26 Mar 2026 00:00:00 GMT</pubDate></item><item><title>How to Automatically Record Created and Updated Timestamps with JPA Auditing in Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-jpa-auditing-created-date-modified-date/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-jpa-auditing-created-date-modified-date/</guid><description>A guide to automatically recording entity creation and update timestamps using JPA Auditing in Spring Boot. Covers practical code for configuring @CreatedDate, @LastModifiedDate, @EnableJpaAuditing, and AuditorAware, including integration with Spring Security.</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How to Implement RabbitMQ Producer and Consumer with Spring Boot - AMQP and spring-amqp Basics</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-rabbitmq-producer-consumer-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-rabbitmq-producer-consumer-guide/</guid><description>A guide to defining RabbitMQ Exchange, Queue, and Binding in code using spring-amqp, and implementing message sending with RabbitTemplate and message receiving with @RabbitListener. Covers dead letter queues, retry configuration, and use case comparisons with Kafka.</description><pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Getting Started with Reactive Programming in Spring WebFlux - Differences from Spring MVC and When to Use Each</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-webflux-reactive-introduction/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-webflux-reactive-introduction/</guid><description>For Java developers familiar with Spring MVC, this article covers the non-blocking I/O mechanism of WebFlux, basic Mono/Flux operations, and endpoint implementation using RouterFunction. With a comparison table between Spring MVC and WebFlux and adoption criteria, you&apos;ll be able to decide whether to apply it to your own project.</description><pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How to Create Custom Validation Annotations in Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-custom-validation-annotation-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-custom-validation-annotation-guide/</guid><description>Learn how to define reusable custom validation rules as annotations using @Constraint and ConstraintValidator, covering three implementation patterns including phone number format validation, duplicate email checking, and password confirmation.</description><pubDate>Sat, 21 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Server-Side Rendering with Thymeleaf in Spring Boot: Implementation Guide</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-thymeleaf-template-engine-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-thymeleaf-template-engine-guide/</guid><description>A hands-on tutorial covering how to integrate Thymeleaf into Spring Boot, including embedding model attributes in HTML, form processing, displaying Bean Validation errors, and Spring Security integration—all in one comprehensive guide.</description><pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How to Send Emails with JavaMailSender in Spring Boot - From Gmail/SMTP Configuration to HTML Emails</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-send-email-javamailsender-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-send-email-javamailsender-guide/</guid><description>A zero-to-production guide on sending emails with JavaMailSender. Covers Gmail SMTP configuration, plain text and HTML emails, asynchronous sending with @Async, and troubleshooting common authentication errors — all with practical code examples.</description><pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How to Achieve Loose Coupling Between Modules with Spring Boot ApplicationEvent</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-event-driven-applicationevent-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-event-driven-applicationevent-guide/</guid><description>Explains event-driven design using ApplicationEvent and ApplicationEventPublisher with implementation examples. Covers post-transaction processing with @TransactionalEventListener, asynchronous event handling, and testing.</description><pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How to Compile Natively with GraalVM Native Image in Spring Boot 3.x</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-graalvm-native-image-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-graalvm-native-image-guide/</guid><description>A practical guide to natively compiling Spring Boot 3.x projects with GraalVM Native Image. Covers AOT processing mechanisms, adding Reflection hints, leveraging native-image-agent, runtime verification with Testcontainers, and troubleshooting.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Implementing Distributed Tracing with Micrometer Tracing and Zipkin in Spring Boot 3.2+</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-distributed-tracing-micrometer-zipkin-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-distributed-tracing-micrometer-zipkin-guide/</guid><description>A practical guide to implementing distributed tracing using Micrometer Tracing and Zipkin in Spring Boot 3.2 and later. Covers migration from the deprecated Spring Cloud Sleuth, trace ID propagation between services, and verification via the Zipkin UI.</description><pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How to Deploy a Spring Boot Application to Kubernetes</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-kubernetes-deployment-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-kubernetes-deployment-guide/</guid><description>A step-by-step guide to deploying a Dockerized Spring Boot application to Kubernetes. Covers creating Manifests for Deployment, Service, ConfigMap, and Secret, as well as configuring Actuator health endpoints as livenessProbe/readinessProbe — practical patterns you can use in production.</description><pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Spring Boot 2 to 3 Migration Guide: Step-by-Step Upgrade Checklist</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-2-to-3-migration-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-2-to-3-migration-guide/</guid><description>Upgrade from Spring Boot 2.x to 3.x with this practical migration checklist. Covers javax to jakarta namespace changes, SecurityFilterChain migration, spring.factories deprecation, and fixes for common compilation and startup errors.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How to Implement a Circuit Breaker with Resilience4j in Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-resilience4j-circuit-breaker-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-resilience4j-circuit-breaker-guide/</guid><description>A hands-on guide to implementing circuit breakers with Resilience4j and Spring Boot. Covers how to use @CircuitBreaker, @Retry, and @RateLimiter, fallback design, and parameter configuration via application.yml with practical code examples.</description><pubDate>Fri, 13 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How to Implement Google Login (OAuth2) with Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-oauth2-social-login-google/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-oauth2-social-login-google/</guid><description>A step-by-step guide to implementing Google social login from scratch using Spring Security OAuth2 Client. Covers everything from how the OAuth2 authorization code flow works to application.yml configuration and UserInfo retrieval, while building an app that runs in a local environment.</description><pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Spring Boot Virtual Threads (Java 21): Setup, Performance, and Pitfalls</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-virtual-threads-java21-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-virtual-threads-java21-guide/</guid><description>Enable virtual threads in Spring Boot 3.2+ with one setting. Covers performance benchmarks vs platform threads, ThreadLocal behavior changes, pinning issues, and @Async integration.</description><pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How to Implement File Upload and Download with REST API in Spring Boot - Using MultipartFile</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-file-upload-download-multipartfile-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-file-upload-download-multipartfile-guide/</guid><description>Step-by-step guide to implementing file upload, storage, and download using MultipartFile. Covers size limit configuration, MIME type validation, exception handling, and production-ready code examples.</description><pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Visualizing Spring Boot Metrics with Prometheus and Grafana</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-observability-micrometer-prometheus-grafana/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-observability-micrometer-prometheus-grafana/</guid><description>A hands-on guide to collecting Spring Boot application metrics via Micrometer into Prometheus and visualizing them in real-time with a Grafana dashboard. Includes implementation examples for custom metrics (Counter and Gauge) and security considerations for production environments.</description><pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Which Should You Choose in Spring Boot: MyBatis or JPA? - Selection Criteria and Combined Usage Patterns</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-mybatis-vs-jpa-comparison-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-mybatis-vs-jpa-comparison-guide/</guid><description>Are you unsure whether to choose MyBatis or JPA for your Spring Boot project? This article provides a thorough comparison of both from the perspectives of SQL control flexibility, learning cost, and maintainability, and presents practical selection criteria such as JPA for CRUD-focused use cases and MyBatis for complex reporting screens. Also covers how to implement a combined usage pattern.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How to Speed Up Your Application with Spring Boot Cache - Using @Cacheable and @CacheEvict</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-cache-abstraction-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-cache-abstraction-guide/</guid><description>An implementation guide for reducing DB access and improving response speed using Spring Cache Abstraction. Covers how to use @Cacheable, @CacheEvict, and @CachePut, selecting between Caffeine and Redis, and cache strategies with practical examples.</description><pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Differences Between Spring Boot Interceptors and Filters: Implementation Patterns for Pre/Post Request Processing</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-interceptor-filter-difference-usage/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-interceptor-filter-difference-usage/</guid><description>Explains the differences between Filter and HandlerInterceptor when implementing common processing such as request logging and authentication checks in Spring Boot. Illustrates differences in execution timing, Spring management, and accessible information with diagrams, and shows selection criteria by use case—authentication, logging, CORS, exception handling—with practical code examples.</description><pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Managing Database Migrations with Flyway in Spring Boot - From Version Control to Production</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-flyway-database-migration-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-flyway-database-migration-guide/</guid><description>A practical guide to safely managing database schema changes using Flyway in Spring Boot applications. Covers initial setup, creating migration scripts, environment-specific application, and troubleshooting.</description><pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How to Safely Process Large Amounts of Data with Spring Batch - Basics of Job, Step, and Chunk Processing</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-batch-processing-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-batch-processing-guide/</guid><description>Explains how to implement large-scale data processing using Spring Batch. Covers the basic configuration of Job/Step/ItemReader/ItemWriter, memory-efficient implementation with chunk processing, transaction management, and retry/skip settings with practical examples.</description><pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Spring Boot @Async Guide: Asynchronous Methods with @EnableAsync</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-async-processing-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-async-processing-guide/</guid><description>Implement async processing in Spring Boot with @Async and @EnableAsync. Covers thread pool configuration, CompletableFuture, exception handling, and real-world patterns for background tasks.</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How Spring Boot Auto-Configuration Works Under the Hood</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-autoconfiguration-mechanism-explained/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-autoconfiguration-mechanism-explained/</guid><description>Understand how Spring Boot auto-configuration works — from @EnableAutoConfiguration and @Conditional annotations to debugging and creating custom auto-configurations. A deep dive with practical examples.</description><pubDate>Sat, 31 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How to Use Spring Boot Caching - Easy Performance Improvement with @Cacheable</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-cache-abstraction-cacheable-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-cache-abstraction-cacheable-guide/</guid><description>A practical guide covering the Spring Cache Abstraction mechanism, how to use @Cacheable, @CacheEvict, and @CachePut, and how to switch to Caffeine or Redis — all with working code examples. Aimed at beginner-to-intermediate developers looking to easily reduce response latency caused by redundant calls to databases or external APIs.</description><pubDate>Thu, 29 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How to Write Integration Tests in Spring Boot - Testing with @SpringBootTest and Testcontainers Including DB</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-integration-testing-springboottest-testcontainers/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-integration-testing-springboottest-testcontainers/</guid><description>A guide with code examples on how to write tests that start the entire application with @SpringBootTest, and how to implement integration tests that connect to a real DB on a Docker container using Testcontainers.</description><pubDate>Wed, 28 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Spring Boot Logging with Logback and SLF4J: Configuration Guide</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-logging-guide-logback-slf4j/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-logging-guide-logback-slf4j/</guid><description>Configure logging in Spring Boot with Logback and SLF4J. Covers log levels, file output, logback-spring.xml, log rotation, and profile-based configuration with practical examples.</description><pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How to Call REST APIs in Spring Boot - When to Use RestTemplate vs WebClient</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-resttemplate-webclient-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-resttemplate-webclient-guide/</guid><description>A practical guide to the two main approaches for calling external REST APIs in Spring Boot: RestTemplate and WebClient. Covers basic usage, criteria for choosing between them, timeout configuration, and error handling.</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How to Run a Spring Boot App in a Docker Container - From Dockerfile Creation to Docker Compose Integration</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-docker-containerization-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-docker-containerization-guide/</guid><description>A practical guide covering everything from Dockerfile optimization for Spring Boot apps (multi-stage builds and layer caching) to launching with PostgreSQL via Docker Compose, explaining the full journey from local development to production deployment.</description><pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Spring Boot JWT Authentication with Spring Security (Tutorial)</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-security-jwt-authentication/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-security-jwt-authentication/</guid><description>Build JWT authentication for a Spring Boot REST API from scratch. Covers token generation, validation, JwtAuthenticationFilter, and SecurityFilterChain configuration with complete code examples.</description><pubDate>Fri, 23 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Understanding Transaction Management with @Transactional in Spring Boot - How to Use Propagation Levels and Isolation Levels</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-transaction-management-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-transaction-management-guide/</guid><description>A comprehensive guide to transaction management using the @Transactional annotation in Spring Boot, from basics to practical usage. Covers default behavior, all 7 propagation levels, 4 isolation levels, and common failure patterns where rollback does not work (checked exceptions, self-invocation) with real examples.</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Spring Security Authentication Tutorial: Basic Auth and Form Login</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-security-basic-authentication-tutorial/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-security-basic-authentication-tutorial/</guid><description>Step-by-step Spring Security authentication tutorial for Spring Boot. Covers Basic Auth, form login, UserDetailsService configuration, and common security pitfalls with working code.</description><pubDate>Mon, 19 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How to Implement Pagination in Spring Boot REST API - Using Pageable and Page</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-rest-api-pagination-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-rest-api-pagination-guide/</guid><description>Step-by-step guide to implementing REST API pagination using Spring Data JPA&apos;s Pageable and Page. Covers page specification via query parameters, sort conditions, custom response formats, and error handling with practical code examples.</description><pubDate>Sat, 17 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Managing Configuration in Spring Boot with application.properties/yml - When to Use @Value vs ConfigurationProperties</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-properties-configuration-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-properties-configuration-guide/</guid><description>A practical guide covering the basics of Spring Boot configuration file syntax, how to choose between @Value and @ConfigurationProperties in real-world projects, and managing settings with environment variables and placeholders.</description><pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Spring Data JPA Query Methods: Naming Conventions and Examples</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-jpa-query-methods-guide/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-jpa-query-methods-guide/</guid><description>Master Spring Data JPA query method naming conventions — findBy, existsBy, countBy, and more. Covers multiple conditions, sorting, pagination, and @Query with practical examples.</description><pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How to Map Entity Relationships with JPA in Spring Boot - Using @OneToMany and @ManyToOne</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-jpa-entity-relationship-mapping/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-jpa-entity-relationship-mapping/</guid><description>A beginner-friendly guide to correctly mapping relationships between entities (@OneToMany, @ManyToOne, @ManyToMany) with JPA in Spring Boot. Covers the differences between bidirectional and unidirectional associations, cascade configuration, choosing FetchType, and practical approaches to avoiding the N+1 problem and circular references.</description><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Let&apos;s Write Tests in Spring Boot - Introduction to Unit Testing with JUnit and Mockito</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-testing-guide-with-junit-and-mockito/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-testing-guide-with-junit-and-mockito/</guid><description>A tutorial for those writing test code for Spring Boot applications for the first time. Step-by-step explanation of how to write unit tests for the Controller and Service layers using JUnit and Mockito, with @WebMvcTest and @MockBean.</description><pubDate>Fri, 09 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How to Safely Switch Configurations per Environment Using Spring Boot Profiles</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-profiles-to-safely-switch-environment-specific-configuration/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-profiles-to-safely-switch-environment-specific-configuration/</guid><description>Using Spring Boot Profiles, you can switch configurations between development, staging, and production environments. This guide clearly explains how to write separate application.yml files, how to activate profiles, and common pitfalls to avoid.</description><pubDate>Wed, 07 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How to Implement Group Validation and Method Validation with Spring Boot @Validated Annotation</title><link>https://springboot-123.mizucoffee.com/en/blog/validated-annotation-group-and-method-validation-in-spring-boot/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/validated-annotation-group-and-method-validation-in-spring-boot/</guid><description>A guide to safely integrating group validation and Service layer method validation using Spring Boot&apos;s @Validated, covering differences from @Valid and exception handling.</description><pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How to Simply Implement Validation with Spring Boot @Valid Annotation</title><link>https://springboot-123.mizucoffee.com/en/blog/valid-annotation-validation-in-spring-boot/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/valid-annotation-validation-in-spring-boot/</guid><description>A thorough explanation of how to use the @Valid annotation for validating form and API request data in Spring Boot, along with detailed control methods using various constraint annotations.</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Introduction to Spring @Bean &apos;Names&apos; - When Should You Set One? How Does It Work? What&apos;s the Priority?</title><link>https://springboot-123.mizucoffee.com/en/blog/what-is-bean-name/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/what-is-bean-name/</guid><description>When developing with Spring Boot, you often have opportunities to use @Bean. One thing that can be subtly tricky is the question of &apos;Should I give this @Bean a name, or just leave it alone?&apos; This article organizes, from a practical perspective, what @Bean names are used for, when you should explicitly set one, and even &apos;which one gets chosen (priority)&apos; when multiple Beans exist.</description><pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate></item><item><title>What is @Configuration / @Bean in Spring Boot? A Clear Guide to How to Use Them</title><link>https://springboot-123.mizucoffee.com/en/blog/what-is-at-configuration/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/what-is-at-configuration/</guid><description>Have you ever come across @Configuration or @Bean while developing with Spring Boot? These are points that tend to cause confusion, such as &apos;What&apos;s the difference from @Component?&apos; and &apos;Where is the correct place to use them?&apos; This article explains the roles and usage of @Configuration/@Bean with concrete examples.</description><pubDate>Sat, 03 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Getting Started with Spring Boot Actuator</title><link>https://springboot-123.mizucoffee.com/en/blog/getting-started-with-spring-boot-actuator/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/getting-started-with-spring-boot-actuator/</guid><description>A beginner-friendly guide to quickly exposing health checks and metrics with Spring Boot Actuator, and building the monitoring foundation needed for operations.</description><pubDate>Fri, 02 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How to Return Unified Error Responses in Spring Boot REST API - Using @ControllerAdvice and @ExceptionHandler</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-boot-exception-handling-rest-api/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-boot-exception-handling-rest-api/</guid><description>Explains how to implement unified JSON error responses for exceptions in Spring Boot REST API. Introduces design patterns and code examples for returning validation errors, business errors, and system errors with appropriate HTTP status codes using @ControllerAdvice and @ExceptionHandler.</description><pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Spring Boot @Scheduled: Cron Jobs, fixedRate, and fixedDelay Explained</title><link>https://springboot-123.mizucoffee.com/en/blog/how-to-use-at-scheduled/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/how-to-use-at-scheduled/</guid><description>Learn how to schedule tasks in Spring Boot using @Scheduled. Covers cron expressions, fixedRate vs fixedDelay, timezone settings, and how to avoid common pitfalls like duplicate execution and silent failures.</description><pubDate>Tue, 07 Jan 2025 00:00:00 GMT</pubDate></item><item><title>What is @Component in Spring Boot? Differences from @Bean Explained</title><link>https://springboot-123.mizucoffee.com/en/blog/what-is-at-component/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/what-is-at-component/</guid><description>A beginner-friendly explanation of @Component in Spring Boot. Covers the differences from @Bean, when to use each, the relationship with dependency injection, and common decision points in real-world development, with code examples.</description><pubDate>Mon, 06 Jan 2025 00:00:00 GMT</pubDate></item><item><title>What is Spring Boot Starter?</title><link>https://springboot-123.mizucoffee.com/en/blog/what-is-spring-boot-starter/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/what-is-spring-boot-starter/</guid><description>A beginner-friendly explanation of the role and mechanism of Spring Boot Starters. Covers how to choose key Starters like spring-boot-starter-web, why dependency management becomes easier, and common pitfalls to watch out for.</description><pubDate>Sun, 05 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Spring AOP Guide: Aspect-Oriented Programming in Spring Boot</title><link>https://springboot-123.mizucoffee.com/en/blog/what-is-aop/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/what-is-aop/</guid><description>Learn how Spring AOP works and how to use it for logging, security, and other cross-cutting concerns. Includes setup instructions and practical code examples for Spring Boot.</description><pubDate>Mon, 30 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Spring Boot Dependency Injection Explained with Examples</title><link>https://springboot-123.mizucoffee.com/en/blog/what-is-di/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/what-is-di/</guid><description>Learn how Dependency Injection (DI) works in Spring Boot. Covers constructor injection, @Autowired, and the benefits of DI for testable, maintainable code — with practical examples.</description><pubDate>Mon, 23 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Spring vs Spring Boot: Key Differences Explained</title><link>https://springboot-123.mizucoffee.com/en/blog/spring-vs-spring-boot/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/spring-vs-spring-boot/</guid><description>What&apos;s the difference between Spring and Spring Boot? This guide compares configuration, dependency management, and startup to help you understand when to use each — with practical examples.</description><pubDate>Mon, 09 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Why Is Spring Boot Commonly Used in Business System Development?</title><link>https://springboot-123.mizucoffee.com/en/blog/why-spring-boot/</link><guid isPermaLink="true">https://springboot-123.mizucoffee.com/en/blog/why-spring-boot/</guid><description>Explains why Spring Boot is chosen for business systems from the perspectives of development speed, maintainability, and operability. Covers which projects it suits and which it doesn&apos;t, along with pre-adoption checkpoints from a practical standpoint.</description><pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate></item></channel></rss>