Boris, the creator of Claude Code, mapped out 5 steps of AI adoption. Find out which step you're on and what it takes to level up. https://youtu.be/g12mC2J11d0
Dan Vega
@danvega.dev
🍃 Spring Developer Advocate @Broadcom ☕️ Java Champion 📹 YouTuber http://bit.ly/3zJb93b 🎙️ Podcast http://bit.ly/3Tzi0CO 🤖 ByteSized AI http://bit.ly/3XYv87j
This week's newsletter is out. New videos on Docker Compose and Spring AI guardrails, plus a first look at the Spring Boot 4 crash course I'm working on. Be the first to know when the course is released. Subscribe: www.danvega.dev/newsletter/
Dan Vega - Newsletter
My Weekly(ish) Newsletter
danvega.dev
I caught my AI making three mistakes in a Spring Boot app I know cold. An hour later it gave me Swift code I shipped without blinking. Same model. The code I should trust less felt better. Here's why that happens. https://youtu.be/UuM2-nRsLuA
Outdated dependencies are an easy target for attackers. AI can help you upgrade them the right way. This video shows when to reach for AI and how to approach the upgrade safely. https://youtu.be/MYtia9xsTrQ
A system prompt is not a security layer. I built 4 Spring AI safeguards (scope restriction, keyword blocking, output leak detection, PII masking) and show what each one catches and misses. Every one can be bypassed alone. Layer them: https://www.youtube.com/watch?v=EZ6Uh1-8Ui4
That docker-compose.yml sitting in every Java repo confuses a lot of people. It's not about putting your app in a container. It runs the stuff your app needs, like Postgres, so any project just runs when you clone it. Clone. Run. Done. https://youtu.be/0LNVXHKKJb8
Spring AI 2.0 replaces per-model tool loops with a composable ToolCallingAdvisor in the ChatClient chain. Watch it run live: stream tool-call events into a "Calling tool..." UI, then take manual control when you need it. https://youtu.be/g6IhOsFKM7c
How long does one YouTube video really take? I mapped every stage from "I have an idea" to published, repurposed, and promoted. Turns out it's 10 stages across 3 phases, and AI now handles the mechanical parts. https://www.danvega.dev/blog/content-creation-workflow
Embabel 1.0 is here. Rod Johnson's AI agent framework for the JVM hit GA: stable APIs, everything on Maven Central, RAG promoted to production, new model integrations, and better MCP citizenship. Builds on Spring AI, Spring Boot 3.5, Java 21. www.danvega.dev/blog/embabel...
Embabel 1.0 Is Here: AI Agent Framework for Java Goes GA
Embabel 1.0 is GA. What Rod Johnson's AI agent framework for the JVM means for Java developers, what changed on the road to 1.0, and how to get started.
danvega.dev
Spring AI 2.0 moved the tool calling loop into the advisor chain. That means you can hook into it and watch it run. I built a streaming chat where every tool call shows up live as a pill, "Calling getWeatherForecast...", using one small custom advisor. github.com/danvega/tool...
LLMs don't always return valid structured output. Spring AI 2.0 can now detect malformed responses and retry automatically until you get clean, parseable data. Here's how self-correcting structured output works: https://youtu.be/vxOeeNyOtZY
Can you use Java for AI? Yes. And if you're building AI into real applications instead of training models, it might be the better choice. The training era belonged to Python. The integration era looks a lot like the JVM. www.danvega.dev/blog/can-you...
Can You Use Java for AI? Why Java Is Better Positioned Than You Think
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.
danvega.dev
AI agents connecting to Slack, GitHub, Jira, and MCP servers can easily hit 50+ tools. That's 55K+ tokens gone before any conversation starts, and accuracy drops fast. Spring AI's tool search solves this. https://youtu.be/VG00DildlvY
Spring AI advisors are AOP for your LLM calls. Do something before the request, something after. I built two custom advisors: one that logs which tools are visible to the model, and one that tracks token usage per call with a running total. Full walkthrough here: youtu.be/WNJFR-_N9bc
Spring AI 2.0: Custom Advisors for Tool & Token Logging
YouTube video by Dan Vega
youtu.be
You've seen AI generate ugly UI. The team behind Tailwind CSS and Refactoring UI built a set of agent skills that actually produce great-looking interfaces. Design, ideation, and more, all broken into focused skills. Here's a walkthrough. https://youtu.be/-B7uyMp54S4
Register 47 tools in Spring AI and every one ships its JSON schema on every request. That's ~5,000 prompt tokens before the user asks anything. The Tool Search Advisor fixes it: the model sees ONE search tool. Demo + walkthrough 👇 (Video Coming Soon) github.com/danvega/spring-ai-tool-search
GitHub - danvega/spring-ai-tool-search
Contribute to danvega/spring-ai-tool-search development by creating an account on GitHub.
github.com
Spring AI has two APIs for working with LLMs: ChatClient and ChatModel. They're not interchangeable, and knowing when to use each one will save you time and confusion. https://www.youtube.com/watch?v=IdIDI71sGZM
X just released their MCP Servers and you can wire them up with Spring AI. Here's a walkthrough to get you started. https://youtu.be/j4chxGtqkY8
Spring Boot 4.1 introduces @RedisListener, a much simpler way to subscribe to Redis messages. If you've dealt with the old MessageListener setup, you'll appreciate this. https://youtu.be/lMbgBYlUtfc
Episode 8 of Fundamentals of Software Engineering just dropped. Nate and I talk open source sustainability, what AI tooling actually looks like in practice, and the coming token crisis you should be thinking about now. Catch the recording here👇🏻 https://youtu.be/kaY8uvnbfis
Spring Boot 4.1 now includes built-in SSRF protection for HttpClient. No extra libraries, no custom filters. Secure by default. https://youtu.be/PDbBG_GrcwU
Spring Boot 4.1 brings lazy JDBC connections. Your app won't grab a database connection until it's actually needed. This means fewer wasted resources and better scalability out of the box. https://youtu.be/lsaBN1U2EB8
Spring Boot 4.1 brings first-class gRPC support. Here's how to get started with Spring gRPC from scratch. https://youtu.be/MPHuBNqbYPM
Spring Boot 4.1 added a property: spring.datasource.connection-fetch=lazy Transactional methods grab a connection the moment they open, even when they never query. Cache hit, early return, slow API call. That connection sits idle. Lazy waits for a real statement. github.com/danvega/jdbc...
GitHub - danvega/jdbc-lazy-connections
Contribute to danvega/jdbc-lazy-connections development by creating an account on GitHub.
github.com
Most developers reach for a message broker the second they need reliable events. You might not need one. Spring Modulith ships with a durable event registry that persists events right to your database. Here's how to use it. https://youtu.be/KLX9ulb2AfM
New episode of Spring Office Hours coming up at 10:15 AM EDT! • Upgrading Spring with AI tools • How OSS is handling CVEs • What's actually working in 2026 Bring your questions. We'll be live 👇🏻 https://www.youtube.com/watch?v=zm_EmvdKwYA
🎙️Going live at 10am ET on Spring Office Hours. S5E15: Spec Driven Development with Simon Martinelli, Java Champion and Vaadin Champion. If AI is writing the code, the spec should be your source of truth. Bring your questions. https://www.youtube.com/watch?v=BZjQo0OJD_A
Stop passing null to your Java records. If you're using Spring Data JDBC with a generated id, a static factory method hides the null where it belongs. Same pattern you already use: List.of, Map.of, LocalDate.of. Worth a full video?
You might have started off with a well structured monolith but over time it turned into the classic big ball of mud. If this sounds familiar my latest video will help you create a modular monolith using Spring Modulith. #Java #SpringBoot 👇🏻 https://youtu.be/xHlDyKVyvig
Spring Modulith brings real structure to your Spring Boot applications, letting the domain drive how you organize and work with modules. If you've been wanting to keep your monolith clean and maintainable, this beginner intro covers what you need to know. https://youtu.be/xHlDyKVyvig