<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Dan Vega</title>
    <description>Personal site of Dan Vega</description>
    <link>https://www.danvega.dev</link>
    <atom:link href="https://www.danvega.dev/rss.xml" rel="self" type="application/rss+xml"/>
    <language>en-us</language>
    <lastBuildDate>Wed, 15 Jul 2026 15:10:16 GMT</lastBuildDate>
    <managingEditor>danvega@gmail.com (Dan Vega)</managingEditor>
    <webMaster>danvega@gmail.com (Dan Vega)</webMaster>
    <item>
      <title>Can You Use Java for AI? Why Java Is Better Positioned Than You Think</title>
      <description>Can you use Java for AI? Yes. For building real AI applications it might be the better choice. Why the JVM, Spring AI, and your existing team are enough.</description>
      <link>https://www.danvega.dev/blog/can-you-use-java-for-ai</link>
      <guid>https://www.danvega.dev/blog/can-you-use-java-for-ai</guid>
      <pubDate>Wed, 15 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>AI</category>
      <category>Spring AI</category>
    </item>
    <item>
      <title>Spring Boot End of Life: Every 3.x Branch Is Now Unsupported</title>
      <description>Spring Boot 3.5 reached end of life in June 2026 and every 3.x branch is now unsupported. What that means, and how to plan your Spring Boot 4 upgrade.</description>
      <link>https://www.danvega.dev/blog/spring-boot-end-of-life</link>
      <guid>https://www.danvega.dev/blog/spring-boot-end-of-life</guid>
      <pubDate>Tue, 14 Jul 2026 13:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>Spring Boot 4</category>
      <category>AI</category>
    </item>
    <item>
      <title>How to Kill a Process Running on a Port (Windows, macOS &amp; Linux)</title>
      <description>Port 8080 already in use? Learn how to find and kill the process running on a port on Windows, macOS, and Linux—with copy-paste commands for each.</description>
      <link>https://www.danvega.dev/blog/kill-process-on-port</link>
      <guid>https://www.danvega.dev/blog/kill-process-on-port</guid>
      <pubDate>Tue, 14 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>Spring Boot</category>
    </item>
    <item>
      <title>Spring AI Tool Search: Stop Wasting Tokens on Tools You Don&apos;t Need</title>
      <description>Spring AI 2.0&apos;s tool search brings dynamic tool discovery to Spring Boot—load tools on demand instead of into every request to cut token usage and cost.</description>
      <link>https://www.danvega.dev/blog/spring-ai-tool-search</link>
      <guid>https://www.danvega.dev/blog/spring-ai-tool-search</guid>
      <pubDate>Thu, 09 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
    </item>
    <item>
      <title>Building Custom Spring AI Advisors for Tool Logging and Token Tracking</title>
      <description>Learn to build custom Spring AI advisors with the BaseAdvisor interface to log available tools, track tool invocations, and count token usage on every LLM call.</description>
      <link>https://www.danvega.dev/blog/spring-ai-custom-advisors-tool-logging-token-counter</link>
      <guid>https://www.danvega.dev/blog/spring-ai-custom-advisors-tool-logging-token-counter</guid>
      <pubDate>Wed, 08 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
      <category>Java</category>
    </item>
    <item>
      <title>UI.sh: Agent Skills That Actually Make AI-Generated UIs Look Good</title>
      <description>UI.sh is a collection of agent skills from the Tailwind CSS and Refactoring UI team that give Claude Code and Codex the polish of a senior UI designer.</description>
      <link>https://www.danvega.dev/blog/ui-dot-sh-agent-skills-for-building-beautiful-uis</link>
      <guid>https://www.danvega.dev/blog/ui-dot-sh-agent-skills-for-building-beautiful-uis</guid>
      <pubDate>Tue, 07 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>AI</category>
      <category>Tailwind CSS</category>
    </item>
    <item>
      <title>ChatClient vs ChatModel: Which Spring AI API Should You Actually Use?</title>
      <description>Spring AI gives you two ways to call an LLM. Learn the difference between ChatClient and ChatModel, when to use each, and see both in action with code examples.</description>
      <link>https://www.danvega.dev/blog/chatclient-vs-chatmodel-spring-ai</link>
      <guid>https://www.danvega.dev/blog/chatclient-vs-chatmodel-spring-ai</guid>
      <pubDate>Thu, 02 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
    </item>
    <item>
      <title>X (Twitter) MCP Servers with Spring AI: Search Posts and Query Docs Programmatically</title>
      <description>X released MCP servers for its API and docs. Build a Spring Boot MCP client with Spring AI 2.0 to search X posts and query the X API docs programmatically.</description>
      <link>https://www.danvega.dev/blog/x-twitter-mcp-servers-spring-ai</link>
      <guid>https://www.danvega.dev/blog/x-twitter-mcp-servers-spring-ai</guid>
      <pubDate>Wed, 01 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>MCP</category>
      <category>Spring Boot</category>
    </item>
    <item>
      <title>Type Safe Property Paths in Spring Boot 4.1</title>
      <description>Spring Boot 4.1 adds type-safe property paths to Spring Data, replacing stringly typed references in sorting, criteria queries, and composite paths.</description>
      <link>https://www.danvega.dev/blog/type-safe-property-paths-spring-boot-4-1</link>
      <guid>https://www.danvega.dev/blog/type-safe-property-paths-spring-boot-4-1</guid>
      <pubDate>Tue, 30 Jun 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Data</category>
    </item>
    <item>
      <title>The New @RedisListener Annotation in Spring Boot 4.1</title>
      <description>Spring Boot 4.1 adds @RedisListener, one annotation that brings Redis Pub/Sub in line with @KafkaListener and @RabbitListener. No container wiring needed.</description>
      <link>https://www.danvega.dev/blog/redis-listener-spring-boot-4-1</link>
      <guid>https://www.danvega.dev/blog/redis-listener-spring-boot-4-1</guid>
      <pubDate>Mon, 29 Jun 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Redis</category>
    </item>
    <item>
      <title>SSRF Protection in Spring Boot 4.1 with InetAddressFilter</title>
      <description>Learn how Spring Boot 4.1&apos;s new InetAddressFilter protects your applications against Server-Side Request Forgery (SSRF) attacks with a single bean definition.</description>
      <link>https://www.danvega.dev/blog/spring-boot-ssrf-protection-inet-address-filter</link>
      <guid>https://www.danvega.dev/blog/spring-boot-ssrf-protection-inet-address-filter</guid>
      <pubDate>Fri, 26 Jun 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
    </item>
    <item>
      <title>Lazy JDBC Connections in Spring Boot 4.1: One Property, Massive Performance Win</title>
      <description>Spring Boot 4.1 adds lazy JDBC connection fetching via spring.datasource.connection-fetch. See how it cuts connection hold time from 2 seconds to 15ms.</description>
      <link>https://www.danvega.dev/blog/lazy-jdbc-connections-spring-boot-4-1</link>
      <guid>https://www.danvega.dev/blog/lazy-jdbc-connections-spring-boot-4-1</guid>
      <pubDate>Thu, 25 Jun 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Data</category>
    </item>
    <item>
      <title>Getting Started with Spring gRPC in Spring Boot 4.1</title>
      <description>Build a gRPC server and client in Spring Boot 4.1 with Spring gRPC — using @GrpcService, protobuf, and the new starters from start.spring.io.</description>
      <link>https://www.danvega.dev/blog/spring-grpc-spring-boot-4-1</link>
      <guid>https://www.danvega.dev/blog/spring-grpc-spring-boot-4-1</guid>
      <pubDate>Wed, 24 Jun 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>

    </item>
    <item>
      <title>Spring Modulith Externalized Events: Publishing Events to Kafka</title>
      <description>Learn how to externalize Spring Modulith application events to Apache Kafka so other systems can react to changes happening inside your modular monolith.</description>
      <link>https://www.danvega.dev/blog/spring-modulith-externalized-events</link>
      <guid>https://www.danvega.dev/blog/spring-modulith-externalized-events</guid>
      <pubDate>Wed, 20 May 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Modulith</category>
    </item>
    <item>
      <title>Spring Boot + Kafka in 10 Minutes: Sending Your First Message</title>
      <description>Produce and consume your first Apache Kafka message with Spring Boot. Covers Docker Compose, KafkaTemplate, @KafkaListener, and Embedded Kafka for tests.</description>
      <link>https://www.danvega.dev/blog/spring-boot-kafka-quick-start</link>
      <guid>https://www.danvega.dev/blog/spring-boot-kafka-quick-start</guid>
      <pubDate>Mon, 18 May 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Apache Kafka</category>
      <category>Spring for Apache Kafka</category>
    </item>
    <item>
      <title>Spring Modulith Durable Events: Reliable Event Processing Without a Message Broker</title>
      <description>Learn how Spring Modulith&apos;s event publication registry persists and replays failed events across restarts, giving you a transactional outbox with no message broker.</description>
      <link>https://www.danvega.dev/blog/spring-modulith-durable-events</link>
      <guid>https://www.danvega.dev/blog/spring-modulith-durable-events</guid>
      <pubDate>Thu, 14 May 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Modulith</category>
    </item>
    <item>
      <title>Introduction to Spring Modulith: Building Modular Monoliths with Spring Boot</title>
      <description>Learn how Spring Modulith helps you build a modular monolith in Spring Boot with enforced module boundaries, application events, and verified architecture.</description>
      <link>https://www.danvega.dev/blog/introduction-to-spring-modulith</link>
      <guid>https://www.danvega.dev/blog/introduction-to-spring-modulith</guid>
      <pubDate>Thu, 30 Apr 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Modulith</category>
      <category>Java</category>
      <category>Modular Monolith</category>
    </item>
    <item>
      <title>Embabel MCP Servers and Tools for Agentic Flows on the JVM</title>
      <description>Add tools and MCP servers to your Embabel agents in Java. Build a blog writing agent that researches topics, calculates reading time, and generates front matter.</description>
      <link>https://www.danvega.dev/blog/embabel-mcp-servers-and-tools</link>
      <guid>https://www.danvega.dev/blog/embabel-mcp-servers-and-tools</guid>
      <pubDate>Fri, 10 Apr 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Embabel</category>
      <category>Java</category>
    </item>
    <item>
      <title>Embabel First Look: Building Agentic Flows on the JVM</title>
      <description>A first look at Embabel, Rod Johnson&apos;s framework for building agentic AI flows on the JVM. Build a blog writing agent using goal-oriented action planning (GOAP).</description>
      <link>https://www.danvega.dev/blog/embabel-first-look</link>
      <guid>https://www.danvega.dev/blog/embabel-first-look</guid>
      <pubDate>Thu, 02 Apr 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Java</category>
    </item>
    <item>
      <title>GraphQL for Java Developers with Spring Boot</title>
      <description>Build GraphQL APIs in Java with Spring Boot 4 and Spring for GraphQL. A free course covering schema-first design, batch loading, unions, and AOT repositories.</description>
      <link>https://www.danvega.dev/blog/getting-started-with-graphql-for-java-developers</link>
      <guid>https://www.danvega.dev/blog/getting-started-with-graphql-for-java-developers</guid>
      <pubDate>Wed, 01 Apr 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>GraphQL</category>
    </item>
    <item>
      <title>Spring, Build Me a Coding Agent</title>
      <description>Build an autonomous coding agent in Spring AI with the Spring AI Agent Utils library. This tutorial adds file system tools, shell commands, and agent skills.</description>
      <link>https://www.danvega.dev/blog/spring-building-me-a-coding-agent</link>
      <guid>https://www.danvega.dev/blog/spring-building-me-a-coding-agent</guid>
      <pubDate>Tue, 31 Mar 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
      <category>Java</category>
    </item>
    <item>
      <title>Spring AI Deep Research Agent</title>
      <description>AI Agent Search</description>
      <link>https://www.danvega.dev/blog/spring-ai-deep-research-agent</link>
      <guid>https://www.danvega.dev/blog/spring-ai-deep-research-agent</guid>
      <pubDate>Fri, 27 Mar 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>AI</category>
    </item>
    <item>
      <title>Getting Started with Error Handling in the RestClient</title>
      <description>Learn best practices for error handling with Spring&apos;s RestClient, including global exception handlers, custom exceptions, Problem Detail responses, and built-in retry with resilience methods in Spring Framework 7.</description>
      <link>https://www.danvega.dev/blog/rest-client-error-handling</link>
      <guid>https://www.danvega.dev/blog/rest-client-error-handling</guid>
      <pubDate>Thu, 26 Mar 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Framework</category>
      <category>REST Client</category>
      <category>Java</category>
    </item>
    <item>
      <title>Giving Your Spring AI Agents a Real Browser with the Browserbase Spring Boot Starter</title>
      <description>Most AI agents can search the web. But what happens when they need to actually use it? I built a Spring Boot Starter for Browserbase that gives your agents a real, headless browser in three lines of configuration, plus a deep research agent to show it off.</description>
      <link>https://www.danvega.dev/blog/browserbase-spring-boot-starter</link>
      <guid>https://www.danvega.dev/blog/browserbase-spring-boot-starter</guid>
      <pubDate>Wed, 25 Mar 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring AI</category>
    </item>
    <item>
      <title>JEP 500: Prepare to Make Final Mean Final in JDK 26</title>
      <description>JDK 26 introduces JEP 500, which warns developers when final fields are mutated through reflection. Here&apos;s what this means for your Java code and how to prepare for the future.</description>
      <link>https://www.danvega.dev/blog/jdk-26-final-means-final</link>
      <guid>https://www.danvega.dev/blog/jdk-26-final-means-final</guid>
      <pubDate>Fri, 20 Mar 2026 10:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
    </item>
    <item>
      <title>Building a Spring Initializr Terminal UI with Java</title>
      <description>How I built a terminal user interface for the Spring Initializr using Tambu UI, a new Java TUI framework, and GraalVM native images to streamline my development workflow.</description>
      <link>https://www.danvega.dev/blog/spring-initializr-tui</link>
      <guid>https://www.danvega.dev/blog/spring-initializr-tui</guid>
      <pubDate>Sat, 14 Mar 2026 10:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>Spring Boot</category>
    </item>
    <item>
      <title>Spring AI Prompt Caching: Stop Wasting Money on Repeated Tokens</title>
      <description>Spring AI prompt caching cuts your Anthropic Claude API costs. Use AnthropicCacheStrategy to cache system prompts and tools that don&apos;t change between requests.</description>
      <link>https://www.danvega.dev/blog/spring-ai-prompt-caching</link>
      <guid>https://www.danvega.dev/blog/spring-ai-prompt-caching</guid>
      <pubDate>Sun, 08 Feb 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
    </item>
    <item>
      <title>I Tried OpenAI&apos;s New Codex Agent. Here are my First Impressions (It&apos;s Really Good)</title>
      <description>OpenAI released Codex, a new GUI for their coding agent. I put it to the test by building a vending machine CLI application in Java 25 with Maven, JUnit 6, and JSpecify null safety annotations.</description>
      <link>https://www.danvega.dev/blog/openai-codex-first-look</link>
      <guid>https://www.danvega.dev/blog/openai-codex-first-look</guid>
      <pubDate>Thu, 05 Feb 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>AI</category>
    </item>
    <item>
      <title>The Ralph Loop: Automate AI Coding Tasks in Java</title>
      <description>The Ralph Loop is a bash script that runs your AI coding agent with a fresh context every iteration. Here&apos;s how it works and how I used it to build a Java CLI.</description>
      <link>https://www.danvega.dev/blog/ralph-loop</link>
      <guid>https://www.danvega.dev/blog/ralph-loop</guid>
      <pubDate>Thu, 05 Feb 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>AI</category>
      <category>Java</category>
    </item>
    <item>
      <title>OpenTelemetry with Spring Boot 4: The New Starter</title>
      <description>Learn how to use the new spring-boot-starter-opentelemetry in Spring Boot 4 to add observability with traces, metrics, and logs—no Actuator required.</description>
      <link>https://www.danvega.dev/blog/opentelemetry-spring-boot</link>
      <guid>https://www.danvega.dev/blog/opentelemetry-spring-boot</guid>
      <pubDate>Tue, 23 Dec 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Observability</category>
    </item>
    <item>
      <title>Building a Spring Boot 4 REST API the Fast Way</title>
      <description>Learn how to build a REST API with Spring Boot 4 in minutes. This tutorial shows you how to create CRUD endpoints using Java records and the @RestController annotation.</description>
      <link>https://www.danvega.dev/blog/spring-boot-4-rest-api</link>
      <guid>https://www.danvega.dev/blog/spring-boot-4-rest-api</guid>
      <pubDate>Thu, 18 Dec 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>REST API</category>
    </item>
    <item>
      <title>Loading Resources in Spring Boot</title>
      <description>Learn how to load resources in Spring Boot using the Resource interface. This tutorial covers three approaches for loading files from the classpath, filesystem, and URLs.</description>
      <link>https://www.danvega.dev/blog/loading-spring-resources</link>
      <guid>https://www.danvega.dev/blog/loading-spring-resources</guid>
      <pubDate>Wed, 17 Dec 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Framework</category>
    </item>
    <item>
      <title>Spring Security 7 Multi-Factor Authentication: Complete Tutorial with @EnableMultiFactorAuthentication</title>
      <description>Learn how to implement multi-factor authentication (MFA) in Spring Boot 4 using Spring Security 7&apos;s new @EnableMultiFactorAuthentication annotation. Step-by-step tutorial with one-time token login and custom PIN codes.</description>
      <link>https://www.danvega.dev/blog/spring-security-7-multi-factor-authentication</link>
      <guid>https://www.danvega.dev/blog/spring-security-7-multi-factor-authentication</guid>
      <pubDate>Tue, 16 Dec 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Security</category>
    </item>
    <item>
      <title>Spring Boot 4 Modularization: Fix Missing Auto-Configuration</title>
      <description>Spring Boot 4 broke your auto-configuration? Learn which modular starters you now need—Flyway, H2, and the test starters behind @AutoConfigureMockMvc.</description>
      <link>https://www.danvega.dev/blog/spring-boot-4-modularization</link>
      <guid>https://www.danvega.dev/blog/spring-boot-4-modularization</guid>
      <pubDate>Fri, 12 Dec 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Boot 4</category>
      <category>Java</category>
    </item>
    <item>
      <title>MockMvcTester vs RestTestClient: Which one Should You Use in Spring Boot 4?</title>
      <description>A comparison of MockMvcTester and RestTestClient for testing Spring Boot web applications, exploring when to use each approach and their key differences.</description>
      <link>https://www.danvega.dev/blog/mock-vs-rest</link>
      <guid>https://www.danvega.dev/blog/mock-vs-rest</guid>
      <pubDate>Wed, 10 Dec 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
    </item>
    <item>
      <title>Spring JMS Client: A Complete Guide to JmsClient in Spring Boot 4</title>
      <description>Master the Spring JMS Client with this complete Spring Boot 4 JmsClient tutorial. Learn when to choose JMS over Kafka, configure message conversion, and send messages using Spring&apos;s fluent API.</description>
      <link>https://www.danvega.dev/blog/jms-client</link>
      <guid>https://www.danvega.dev/blog/jms-client</guid>
      <pubDate>Fri, 05 Dec 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>Spring Boot</category>
      <category>JMS</category>
    </item>
    <item>
      <title>Spring Data AOT Repositories: Faster Startup and Build-Time Query Validation</title>
      <description>Learn how Spring Data AOT Repositories move query processing from runtime to compile time, reducing startup times and memory usage, plus how to validate repository methods at build time.</description>
      <link>https://www.danvega.dev/blog/spring-data-aot-repositories</link>
      <guid>https://www.danvega.dev/blog/spring-data-aot-repositories</guid>
      <pubDate>Tue, 25 Nov 2025 10:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Data</category>
    </item>
    <item>
      <title>Spring Boot 4: Everything You Need to Know (4.0 and 4.1)</title>
      <description>Everything new in Spring Boot 4 and 4.1, from null safety and HTTP interfaces to modularization and gRPC, plus the upgrade path from Spring Boot 3.</description>
      <link>https://www.danvega.dev/blog/spring-boot-4-is-here</link>
      <guid>https://www.danvega.dev/blog/spring-boot-4-is-here</guid>
      <pubDate>Mon, 24 Nov 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Boot 4</category>
      <category>Spring</category>
      <category>Java</category>
    </item>
    <item>
      <title>Native Retry Support in Spring Boot 4: No External Dependencies Required</title>
      <description>Spring Boot 4 includes native retry support with @Retryable, RetryTemplate, and @ConcurrencyLimit. Learn how to add resilience without the spring-retry dependency.</description>
      <link>https://www.danvega.dev/blog/spring-boot-4-native-retry-support</link>
      <guid>https://www.danvega.dev/blog/spring-boot-4-native-retry-support</guid>
      <pubDate>Thu, 13 Nov 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Boot 4</category>
      <category>Java</category>
    </item>
    <item>
      <title>Jackson 3 in Spring Boot 4: JsonMapper, JSON Views, and What&apos;s Changed</title>
      <description>Learn how to use Jackson 3 in Spring Boot 4 with the new JsonMapper, immutable configuration, unchecked exceptions, and JSON Views with the hint() method.</description>
      <link>https://www.danvega.dev/blog/jackson-3-spring-boot-4</link>
      <guid>https://www.danvega.dev/blog/jackson-3-spring-boot-4</guid>
      <pubDate>Mon, 10 Nov 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Boot 4</category>
    </item>
    <item>
      <title>HTTP Interfaces in Spring Boot 4: Say Goodbye to Boilerplate</title>
      <description>Learn how HTTP interfaces let you define declarative HTTP clients in Spring Boot, and discover how Spring Framework 7 eliminates the configuration boilerplate with @ImportHttpServices.</description>
      <link>https://www.danvega.dev/blog/http-interfaces-spring-boot-4</link>
      <guid>https://www.danvega.dev/blog/http-interfaces-spring-boot-4</guid>
      <pubDate>Thu, 06 Nov 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Boot 4</category>
      <category>Spring Framework</category>
    </item>
    <item>
      <title>Stop NullPointerExceptions Before Production with Spring Boot 4&apos;s Null Safety</title>
      <description>Discover how Spring Boot 4 and JSpecify annotations catch NullPointerExceptions at compile-time instead of runtime. Learn to implement @NullMarked and @Nullable for bulletproof Java code with practical examples.</description>
      <link>https://www.danvega.dev/blog/spring-boot-4-null-safety</link>
      <guid>https://www.danvega.dev/blog/spring-boot-4-null-safety</guid>
      <pubDate>Wed, 05 Nov 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>Spring Boot</category>
      <category>Spring Boot 4</category>
    </item>
    <item>
      <title>Spring Boot 4&apos;s Bean Registrar: A Cleaner Way to Register Beans Programmatically</title>
      <description>Learn how Spring Boot 4&apos;s new BeanRegistrar interface simplifies programmatic bean registration in Spring Framework 7. This tutorial demonstrates dynamic bean creation based on environment properties, conditional registration with complex logic, and performance optimization techniques. Discover when to use BeanRegistrar vs @Bean annotations with practical code examples and testing strategies for your Spring applications.</description>
      <link>https://www.danvega.dev/blog/programmatic-bean-registration</link>
      <guid>https://www.danvega.dev/blog/programmatic-bean-registration</guid>
      <pubDate>Sat, 01 Nov 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Boot 4</category>
      <category>Spring Framework</category>
    </item>
    <item>
      <title>Testing Spring REST APIs with RestTestClient: A Complete Guide</title>
      <description>Explore the new Rest Test Client in Spring Framework 7, a modern replacement for RestTemplate that provides a fluent API for testing REST APIs with improved type safety and better integration with modern testing practices.</description>
      <link>https://www.danvega.dev/blog/spring-framework-7-rest-test-client</link>
      <guid>https://www.danvega.dev/blog/spring-framework-7-rest-test-client</guid>
      <pubDate>Thu, 30 Oct 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Framework</category>
      <category>Spring Boot</category>
      <category>Testing</category>
    </item>
    <item>
      <title>Building MCP Clients with Spring AI: Augmenting LLMs with Custom Context</title>
      <description>Learn how to build MCP (Model Context Protocol) clients using Spring AI to augment Large Language Models with custom context and functionality for your applications.</description>
      <link>https://www.danvega.dev/blog/spring-ai-mcp-client</link>
      <guid>https://www.danvega.dev/blog/spring-ai-mcp-client</guid>
      <pubDate>Tue, 28 Oct 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
    </item>
    <item>
      <title>Evolving your API without Versioning in GraphQL</title>
      <description>Explore modern approaches to API versioning in GraphQL, including schema evolution strategies, deprecation patterns, and best practices for maintaining backward compatibility while evolving your API.</description>
      <link>https://www.danvega.dev/blog/api-versioning-with-graphql</link>
      <guid>https://www.danvega.dev/blog/api-versioning-with-graphql</guid>
      <pubDate>Tue, 30 Sep 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>GraphQL</category>
    </item>
    <item>
      <title>First-Class API Versioning in Spring Boot 4</title>
      <description>Learn how to implement API versioning strategies in Spring Boot 4 applications, including best practices for managing backwards compatibility and evolution of your REST APIs.</description>
      <link>https://www.danvega.dev/blog/spring-boot-4-api-versioning</link>
      <guid>https://www.danvega.dev/blog/spring-boot-4-api-versioning</guid>
      <pubDate>Thu, 25 Sep 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Boot 4</category>
      <category>Spring Framework</category>
    </item>
    <item>
      <title>My CYC 2025 Demo: Why Building MCP Servers in Java Just Got Ridiculously Simple</title>
      <description>Learn how Spring AI 1.1.0-M2 makes building MCP servers in Java incredibly simple with just annotations. No callbacks, no complex setup. Includes complete code from my Commit Your Code 2025 conference demo, showing how to expose your Java application&apos;s data to Claude and other AI assistants.</description>
      <link>https://www.danvega.dev/blog/cyc-mcp-server-spring-ai</link>
      <guid>https://www.danvega.dev/blog/cyc-mcp-server-spring-ai</guid>
      <pubDate>Wed, 24 Sep 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring</category>
      <category>Spring AI</category>
      <category>AI</category>
      <category>MCP</category>
      <category>Java</category>
    </item>
    <item>
      <title>Spring Boot 3.x Features: A Complete Guide (3.0 to 3.5)</title>
      <description>Every major Spring Boot 3.x feature from 3.0 to 3.5—Java 17, GraalVM native images, virtual threads, Docker Compose, Testcontainers, and structured logging.</description>
      <link>https://www.danvega.dev/blog/spring-boot-3-features</link>
      <guid>https://www.danvega.dev/blog/spring-boot-3-features</guid>
      <pubDate>Wed, 17 Sep 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>Spring Framework</category>
    </item>
    <item>
      <title>JDK 24&apos;s Major Improvement: Virtual Threads Without Pinning</title>
      <description>Discover JDK 24&apos;s breakthrough enhancement that eliminates virtual thread pinning with synchronized blocks and methods. This comprehensive guide explores how this change revolutionizes Java concurrency, dramatically improving scalability for Spring Boot applications with legacy synchronized code. You&apos;ll learn about the technical details of thread pinning, see practical performance comparisons, and get hands-on examples showing how to leverage this feature in real-world applications for maximum throughput and efficiency.</description>
      <link>https://www.danvega.dev/blog/jdk-24-virtual-threads-without-pinning</link>
      <guid>https://www.danvega.dev/blog/jdk-24-virtual-threads-without-pinning</guid>
      <pubDate>Wed, 09 Apr 2025 17:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>Spring</category>
    </item>
  </channel>
</rss>