IntelliJ IDEA
IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin
Java Annotated Monthly – December 2025
This month brings significant developments throughout the Java ecosystem. Java has begun announcing JEPs targeted for the upcoming release, while Spring has unveiled major updates with Spring Framework 7 and Spring Boot 4.
As always, we’ve curated the most interesting articles, videos, and podcasts covering Java, Kotlin, Spring, AI, and other relevant topics in technology and software development.
We’re also pleased to feature Siva Katamreddy as our guest author, who has selected valuable content and resources from across the developer community.
There’s plenty to explore, so let’s dive in.
Featured Content
Spring Framework 7 and Spring Boot 4 went GA in November 2025, delivering features such as API versioning, enhancements to the HTTP service client, resilience features in Core Spring, Jackson 3 support, and more. You can explore these new features in the Road to GA article series.
One of the major changes in Spring Boot 4 is the modularization of the previously single spring-boot-autoconfigure JAR into separate modules, each focused on specific functionality. This ensures that your application includes only the autoconfiguration relevant to the modules you import, reducing the runtime footprint. Similarly, the spring-boot-test-autoconfigure JAR has also been split, allowing you to include only the test starters you actually need.
//Spring Boot 3.x implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.flywaydb:flyway-core' testImplementation 'org.springframework.boot:spring-boot-starter-test' //Spring Boot 4.x implementation 'org.springframework.boot:spring-boot-starter-webmvc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-flyway' testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test' testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa-test' testImplementation 'org.springframework.boot:spring-boot-starter-flyway-test'
Dan Vega, Developer Advocate at Broadcom, has published an excellent video series covering the new features in Spring Framework 7 and Spring Boot 4. I highly recommend watching the following:
- API Versioning Made Simple with Spring Boot 4.0
- Spring Framework 7: Dynamic Bean Registration Made Easy
- Jackson 3 Support is HERE: What’s New in Spring Framework 7 & Spring Boot 4
- Spring Boot 4’s Built-in Resilience Features: Say Goodbye to External Dependencies!
IntelliJ IDEA 2025.3 provides support for these new features, enabling developers to use them seamlessly. For more details, refer to the article: IntelliJ IDEA 2025.3 💚 Spring 7. IntelliJ IDEA now also offers improved Spring Data JDBC support, including the ability to generate entities from an existing database, generating Flyway or Liquibase migrations from Spring Data JDBC entities, synchronize models with database schema, and more.
Have you ever wanted to debug a Spring Boot application running remotely? In my latest video, I demonstrate how to use IntelliJ IDEA’s remote JVM debugging capability to connect to a Spring Boot application running remotely (in a Docker container) and step through the code.
Spring AI is an excellent choice for building GenAI-powered applications on the JVM, and Spring AI 1.1 GA has been released with many new features and enhancements. The new annotation-based programming model significantly simplifies the building of MCP servers and clients, with support for multiple transport options including STDIO, HTTP SSE, and Streamable HTTP. You can upgrade to Spring AI 1.1 using the Arconia CLI.
If you want to master Spring AI, be sure to read Spring AI in Action by Craig Walls.
If, like me, you are interested in understanding how GenAI is transforming software development, you may also enjoy the following articles:
Interestingly, many developers who use AI agents for software development are now recommending spec-driven development. To begin your journey with this approach, check out the blog post: How to Use a Spec-Driven Approach for Coding with AI.
Java News
Don’t miss this fresh collection of Java news:
- Java News Roundup 1, 2, 3, 4, 5
- Value Classes Heap Flattening – What to expect from JEP 401 #JVMLS
- Quality Outreach Heads-up – JDK 25: Consistent Behavior of ‘new File(“”)’
- JEPs targeted to JDK 26:
- 522: G1 GC: Improve Throughput by Reducing Synchronization
- 500: Prepare to Make Final Mean Final
- 516: Ahead-of-Time Object Caching with Any GC
- 524: PEM Encodings of Cryptographic Objects (Second Preview)
- 525: Structured Concurrency (Sixth Preview)
- 526: Lazy Constants (Second Preview)
- Try the New Valhalla EA Build – Inside Java Newscast #100
- Java 26 Warns of Deep Reflection – Inside Java Newscast #101
Java Tutorials and Tips
You might be a Java expert, but there’s always something new to learn:
- ING Backend Summit 2025 Marit van Dijk and Piotr Przybył Learning Modern Java the playful way
- Who instruments the native instrumenters?
- Writing Readable Code With Algebraic Data Types and Pattern Matching in Java
- Help! My LocalDate Isn’t Flattened
- Help, My Java Object Vanished (and the GC is Not at Fault)
- Supercharge your JVM Performance with Project Leyden and Spring Boot
- Symbolic Modeling and Transformation of Java Code #JVMLS
- Driving a web browser with Gemini’s Computer Use model in Java
- Pulling the (foreign) string
- Java Security Starts with the JVM
- The Latest on JavaOne 2026
- Deep Dive into Gatherers – JEP Cafe #24
- OpenJDK Projects (Leyden, Babylon, Panama) and TornadoVM
- OpenJDK Evolutions plus Tips and Tricks
- Garbage Collection in Java: Choosing the Correct Collector
- Are you really wasting your time in Java without these 10 libraries?
- Mind Maps Didn’t Make Me Scroll
- Choosing a dependency
Kotlin Corner

Kotlin enthusiasts, this selection is for you:
- Kotlin Refactoring News
- Koog 0.5.0 Is Out: Smarter Tools, Persistent Agents, and Simplified Strategy Design
- Building AI Agents in Kotlin – Part 1: A Minimal Coding Agent
- Building AI Agents in Kotlin – Part 2: A Deeper Dive Into Tools
- Google Summer of Code 2025: What Our Contributors Built
- Value classes are new data classes
- MockK: Under the cover
- Interfacing with Wasm from Kotlin
- What’s new in Kotlin 2.2.21 (and 2.2.20!)
- Kotlin Refactoring News by Duncan McGregor
- How to Prevent Race Conditions in Kotlin Coroutines by Dave Leeds
AI
Here’s a curated mix of AI news and clever takes:
- Hey Java Devs, Let’s Talk About AI MCP!
- If You Can’t Test It, Don’t Deploy It: The New Rule of AI Development?
- Create Self-Improving AI Agents Using Spring AI Recursive Advisors
- How AI with Prompt Engineering Supports Software Testing
- Your New AI-Powered Coding Buddy: A Guide to SonarQube MCP Server on IntelliJ
- Agent Design Is Still Hard
- Testers, testing and the future: A Bifurcation into Testing AI and AI-powered Testing
- Agentic AI Patterns: one size does not fit all
- The Agentic AI Security
- The Learning Loop and LLMs
Languages, Frameworks, Libraries, and Technologies
Keep up with the latest and greatest updates and trends from the world of tech:
- This Week in Spring 1, 2, 3, 4
- Null-safe applications with Spring Boot 4
- Growing Quarkus in a Spring Boot World – Kevin Dubois (IBM) | The Marco Show
- Spring AI: Mapping LLM Responses to Java Objects
- What to Mock in an Integration Test (Expert Advice)
- Spring Framework 7 and Spring Boot 4: The tastiest bites – JVM Weekly vol. 153
- Towards Spring Tools 5 – Ready for Boot 4 and Framework 7
- Towards Spring Tools 5 – Stereotypes and a new Structural View
- Beyond JSON: Converting Spring AI Tool Response Formats to TOON, XML, CSV, YAML
- A Bootiful Podcast: Spring community legend and friend Simon Martinelli
- The best way to clean up test data with Spring and Hibernate
- Foojay Podcast #81: Maven 4 – The Future of Java Build Automation
- The Ultimate All-in-One Document Viewer Plugin for JetBrains IDE
- The Pitfall of Increasing Read Capacity by Reading From Secondary Nodes in a MongoDB Replica Set
- Beyond Accidental Quality: Finding Hidden Bugs with Generative Testing
- Getting Started With Hibernate ORM and MongoDB
- Modeling Relationships With Hibernate ORM and MongoDB
- The Cost of Not Knowing MongoDB – Part 3: (appV6R0 to appV6R4)
Conferences and Events
Mark your calendar for this month’s events:
- Engineers Talk About Spring Boot 4, Life and Other Stuff – Online, December 11
- Ya!vaConf – Online, catch the talk with Marit van Dijk, December 4
- Yow! Australia – Different locations in Australia, meet Anton Arhipov at his talk, December 3–12
Follow the Marco Show:
Culture and Community
Find inspiring ideas and food for thought in the articles below:
- More important skills/traits in becoming a computer programmer
- Productivity Is Messing Around and Having Fun
- Developing and Deploying Software in a Sustainable Way
- Humans in the Loop: Engineering Leadership in a Chaotic Industry
- Tech predictions for 2026 and beyond
- The developer productivity paradox: Why faster coding doesn’t mean faster software delivery
- Clarifying the Rule of Three in Refactoring
And Finally…
Make sure you check out the best IntelliJ IDEA blog post from November:
- Spring Boot 4: Leaner, Safer Apps and a New Kotlin Baseline
- Master Spring Data AOT in IntelliJ IDEA
- One Could Simply Add Nullability Check Support… Without Even Noticing It
- Open-source IntelliJ IDEA: A Simpler Way to Build and Contribute to the Community
- Universal Entry Point: A Single Entry Point for Context-Aware Coding Assistance
That’s it for today! We’re always collecting ideas for the next Java Annotated Monthly – send us your suggestions via email or X by December 20. Don’t forget to check out our archive of past JAM issues for any articles you might have missed!
