{"id":697934,"date":"2026-04-06T12:10:42","date_gmt":"2026-04-06T11:10:42","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=idea&#038;p=697934"},"modified":"2026-04-13T08:10:33","modified_gmt":"2026-04-13T07:10:33","slug":"java-annotated-monthly-april-2026","status":"publish","type":"idea","link":"https:\/\/blog.jetbrains.com\/en\/idea\/2026\/04\/java-annotated-monthly-april-2026","title":{"rendered":"Java Annotated Monthly \u2013 April 2026"},"content":{"rendered":"\n<p>It&#8217;s safe to say March was defined by one thing: Java 26. In this issue of Java Annotated Monthly, we&#8217;ve curated a rich selection of articles to help you get the full picture of the release. <a href=\"https:\/\/maritvandijk.com\/\" target=\"_blank\" rel=\"noopener\">Marit van Dijk<\/a> joins us as the featured guest author, bringing her expertise to help you navigate the changes with confidence. Alongside our Java 26 coverage, you&#8217;ll find our regular roundup of AI developments, Spring updates, Kotlin news, industry trends, and community reads that caught our eye.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Featured Content<\/h2>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                                                            <div class=\"about-author__box-img\">\n                            <img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2026\/04\/1763313006438-1.png\" alt=\"\" loading=\"lazy\">\n                        <\/div>\n                                        <div class=\"about-author__box-text\">\n                                                    <h4>Marit van Dijk<\/h4>\n                                                <p>Marit van Dijk is a Java Champion and Developer Advocate at JetBrains with over 20 years of software development experience. She\u2019s passionate about building great software with great people, and making developers\u2019 lives easier.<\/p>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/div>\n\n\n\n<p>Marit regularly presents at international conferences and shares her expertise through webinars, podcasts, blog posts, videos, and tutorials. She\u2019s also a contributor to the book <a href=\"https:\/\/www.oreilly.com\/library\/view\/97-things-every\/9781491952689\/\" target=\"_blank\" rel=\"noopener\"><em>97 Things Every Java Programmer Should Know<\/em><\/a> (O\u2019Reilly Media).<\/p>\n\n\n\n<p>March held a lot of interesting things for Java. First of all, there was the Java 26 release on March 17. You can read all about <a href=\"https:\/\/blog.jetbrains.com\/idea\/2026\/03\/java-26-in-intellij-idea\/\">Java 26 in IntelliJ IDEA <\/a>on the blog, and find more links on Java 26 in the Java sections below.<\/p>\n\n\n\n<p>Also in March, JavaOne took place in Redwood Shores, USA. During the community keynote, our colleague Anton Arhipov talked about <a href=\"https:\/\/www.youtube.com\/live\/skc-nIFS-hs?t=5171s\" target=\"_blank\" rel=\"noopener\">25 years of IntelliJ IDEA<\/a>. In case you missed it, we also did a <a href=\"https:\/\/dukescorner.libsyn.com\/site\/marit-van-dijk-and-anton-arhipov-25-years-of-intellij-idea\" target=\"_blank\" rel=\"noopener\">Duke\u2019s Corner podcast<\/a> and a <a href=\"https:\/\/www.youtube.com\/watch?v=Bi3wLP5ZCWw\" target=\"_blank\" rel=\"noopener\">Foojay podcast <\/a>on the same topic. And of course, the <a href=\"https:\/\/www.youtube.com\/watch?v=Kourq_Lz03U\" target=\"_blank\" rel=\"noopener\">IntelliJ IDEA documentary<\/a> was released this month. Also at JavaOne, we announced that <a href=\"https:\/\/blog.jetbrains.com\/ai\/2026\/03\/koog-comes-to-java\/\">Koog is coming to Java<\/a>, if you want to try JetBrains\u2019 <a href=\"https:\/\/www.jetbrains.com\/koog\/\" target=\"_blank\" rel=\"noopener\">Koog<\/a> AI agent with Java instead of Kotlin.<\/p>\n\n\n\n<p>IntelliJ IDEA 2026.1 was just released. Of course we have Java 26 support from day one, as well as improvements to the debugger for virtual threads, support for new Kotlin features, Spring Data and Spring Debugger features, new AI features, and more. You can read all about it on the <a href=\"https:\/\/blog.jetbrains.com\/idea\/2026\/03\/intellij-idea-2026-1\/\">blog<\/a> or watch our <a href=\"https:\/\/www.youtube.com\/watch?v=FVsMsCFtlOs\" target=\"_blank\" rel=\"noopener\">release video<\/a>.<\/p>\n\n\n\n<p>The release of Java 26 also means that Piotr Przyby\u0142 and I updated our talk, <a href=\"https:\/\/maritvandijk.com\/presentations\/modern-java-playful\/\" target=\"_blank\" rel=\"noopener\"><em>Learning modern Java the playful way<\/em><\/a>, for Java 26. You can watch the <a href=\"https:\/\/www.youtube.com\/watch?v=6jHZpbLH4WU\" target=\"_blank\" rel=\"noopener\">recording from Voxxed Days Amsterdam<\/a>, or catch us at multiple <a href=\"https:\/\/maritvandijk.com\/events\/\" target=\"_blank\" rel=\"noopener\">events<\/a> around Europe.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Java News<\/h2>\n\n\n\n<p>Check out all the Java news highlights in March:&nbsp;<\/p>\n\n\n\n<ul>\n<li>Java News Roundup <a href=\"https:\/\/www.infoq.com\/news\/2026\/03\/java-news-roundup-mar02-2026\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">1<\/a>, <a href=\"https:\/\/www.infoq.com\/news\/2026\/03\/java-news-roundup-mar09-2026\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">2<\/a>, <a href=\"https:\/\/www.infoq.com\/news\/2026\/03\/java-news-roundup-mar16-2026\/\" target=\"_blank\" rel=\"noopener\">3<\/a>, <a href=\"https:\/\/www.infoq.com\/news\/2026\/03\/java-news-roundup-mar23-2026\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">4<\/a>, <a href=\"https:\/\/www.infoq.com\/news\/2026\/04\/java-news-roundup-mar30-2026\/\" target=\"_blank\" rel=\"noopener\">5<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/java-26-whats-new\/\" target=\"_blank\" rel=\"noopener\">Java 26: What\u2019s New?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2026\/03\/04\/jdk-26-http-client\/\" target=\"_blank\" rel=\"noopener\">HTTP Client Updates in Java 26<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2026\/03\/08\/jfokus-java-performance-update\/\" target=\"_blank\" rel=\"noopener\">Java Performance Update: From JDK 21 to JDK 25<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2026\/03\/10\/quality-heads-up\/\" target=\"_blank\" rel=\"noopener\">Quality Outreach Heads-up &#8211; JDK 27: Removal of \u2018java.locale.useOldISOCodes\u2019 System Property<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2026\/03\/12\/podcast-051\/\" target=\"_blank\" rel=\"noopener\">Episode 51 \u201cUnboxing Java 26 for Developers\u201d&nbsp;<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/nipafx.dev\/talk-java-x\" target=\"_blank\" rel=\"noopener\">Java 27 &#8211; Better Language, Better APIs, Better Runtime<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/foojay-podcast-92\/\" target=\"_blank\" rel=\"noopener\">Foojay Podcast #92: Java 26 Is Here: What\u2019s New, What\u2019s Gone, and Why It Matters in 2026<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2026\/03\/18\/jdk-26-in-2-mins\/\" target=\"_blank\" rel=\"noopener\">Java 26 in definitely UNDER 3 minutes<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2026\/03\/19\/jdk26-security-enhancements\/\" target=\"_blank\" rel=\"noopener\">JDK 26 Security Enhancements<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Java Tutorials and Tips<\/h2>\n\n\n\n<p>You can never have too many tips for getting more out of Java:<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/inside.java\/2026\/03\/02\/jdk-26-rn-ops\/\" target=\"_blank\" rel=\"noopener\">Java 26 for DevOps<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/hanno.codes\/2026\/03\/17\/java-26-is-here\/\" target=\"_blank\" rel=\"noopener\">Java 26 Is Here, And With It a Solid Foundation for the Future<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/pvs-studio.com\/en\/blog\/posts\/java\/1357\/\" target=\"_blank\" rel=\"noopener\">Closed-world assumption in Java<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/java-for-scripting\/\" target=\"_blank\" rel=\"noopener\">JavaScript (No, Not That One): Modern Automation with Java<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/mostlynerdless.de\/blog\/2026\/02\/13\/redacting-sensitive-data-from-java-flight-recorder-files\/\" target=\"_blank\" rel=\"noopener\">Redacting Sensitive Data from Java Flight Recorder Files<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/foojay-podcast-91\/\" target=\"_blank\" rel=\"noopener\">Foojay Podcast #91: 25 Years of IntelliJ IDEA: The IDE That Grew Up With Java<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/maritvandijk.com\/vulnerable-api-usage\/\" target=\"_blank\" rel=\"noopener\">Vulnerable API usage: Is your Java code vulnerable?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/mostlynerdless.de\/blog\/2026\/03\/17\/java-26-is-boring-and-thats-a-good-thing\/\" target=\"_blank\" rel=\"noopener\">Java 26 is boring, and that\u2019s a good thing<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2026\/03\/06\/podcast-049\/\" target=\"_blank\" rel=\"noopener\">Episode 49 \u201cLazyConstants in JDK 26\u201d&nbsp;<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/donraab.medium.com\/empty-should-be-empty-c09e21edc205\" target=\"_blank\" rel=\"noopener\">Empty Should be Empty<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.elastic.co\/search-labs\/blog\/elasticsearch-integration-tests\" target=\"_blank\" rel=\"noopener\">Testing Elasticsearch. It just got simpler<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/spring.io\/blog\/2026\/03\/19\/a-bootiful-podcast-cay-horstmann\" target=\"_blank\" rel=\"noopener\">A Bootiful Podcast: Cay Horstmann, legendary Java professor, author, lecturer<\/a>&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2026\/03\/09\/podcast-050\/\" target=\"_blank\" rel=\"noopener\">Episode 50 \u201cTowards Better Checked Exceptions\u201d&nbsp;<\/a><\/li>\n\n\n\n<li>How is Leyden improving Java Performance? <a href=\"https:\/\/foojay.io\/today\/122962\/\" target=\"_blank\" rel=\"noopener\">1,<\/a> <a href=\"https:\/\/foojay.io\/today\/how-is-leyden-improving-java-performance-part-2-of-3\/\" target=\"_blank\" rel=\"noopener\">2<\/a>, <a href=\"https:\/\/foojay.io\/today\/how-is-leyden-improving-java-performance-part-3-of-3\/\" target=\"_blank\" rel=\"noopener\">3<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jvogel.me\/posts\/2026\/java-is-fast-your-code-might-not-be\" target=\"_blank\" rel=\"noopener\">Java Is Fast. Your Code Might Not Be.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/openjdk.org\/projects\/amber\/design-notes\/beyond-records\" target=\"_blank\" rel=\"noopener\">Data Oriented Programming, Beyond Records&nbsp;<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.selikoff.net\/2026\/03\/18\/javaone-2026-evolving-the-java-language-an-inside-perspective\/\" target=\"_blank\" rel=\"noopener\">Evolving the Java Language: An Inside Perspective<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.elastic.co\/search-labs\/blog\/langchain4j-elasticsearch-hybrid-search\" target=\"_blank\" rel=\"noopener\">Hybrid search with Java: LangChain4j Elasticsearch integration<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.selikoff.net\/2026\/03\/19\/javaone-2026-secure-coding-guidelines-for-java\/\" target=\"_blank\" rel=\"noopener\">Secure Coding Guidelines for Java<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.balarawool.me\/Vector-API-Pi-Estimator\/\" target=\"_blank\" rel=\"noopener\">Estimating value of pi (\u03c0) using Monte Carlo Simulation and Vector API<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/kpavlov.me\/blog\/javable\/\" target=\"_blank\" rel=\"noopener\">Javable: generate Java-friendly wrappers for Kotlin with KSP<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Kotlin Corner<\/h2>\n\n\n\n<p>Stay sharp with the latest Kotlin news and practical tips:<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2026\/03\/kotlin-2-3-20-released\/\">Kotlin 2.3.20 Released&nbsp;<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/amper\/2026\/03\/amper-0-10\/\">Amper 0.10 \u2013 JDK Provisioning, a Maven Converter, Custom Compiler Plugins, and More&nbsp;<\/a><\/li>\n\n\n\n<li>The <a href=\"http:\/\/klibs.io\" target=\"_blank\" rel=\"noopener\">klibs.io<\/a> source repository was <a href=\"https:\/\/github.com\/JetBrains\/klibs-io\" target=\"_blank\" rel=\"noopener\">made public<\/a>.<\/li>\n\n\n\n<li><a href=\"https:\/\/proandroiddev.com\/building-a-deep-research-agent-with-koog-teaching-your-agent-to-think-in-phases-d5681ea7d237\" target=\"_blank\" rel=\"noopener\">Building a Deep Research Agent with Koog \u2014 Teaching Your Agent to Think in Phases&nbsp;<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/ai\/2026\/03\/koog-comes-to-java\/\">Koog Comes to Java: The Enterprise AI Agent Framework From JetBrains<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2026\/03\/introducing-tracy-the-ai-observability-library-for-kotlin\/\">Introducing Tracy: The AI Observability Library for Kotlin&nbsp;<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2026\/03\/kotlinconf-26-speakers-in-conversation-with-josh-long\/\">KotlinConf\u201926 Speakers: In Conversation with Josh Long<\/a>&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">AI&nbsp;<\/h2>\n\n\n\n<p>Plenty of AI reads this month. Pick what catches your eye:<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/inside.java\/2026\/03\/01\/jfr-ai-monitor\/\" target=\"_blank\" rel=\"noopener\">Intelligent JVM Monitoring: Combining JDK Flight Recorder with AI<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jvmskills.com\/\" target=\"_blank\" rel=\"noopener\">AI coding skills from the engineers who build the JVM ecosystem<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/loiane.com\/2026\/03\/vibe-coding-with-specs-driven-feedback-loops\/\" target=\"_blank\" rel=\"noopener\">Vibe Coding, But Production-Ready: A Specs-Driven Feedback Loop for AI-Assisted Development<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/presentations\/ai-systems-privacy-security\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Busting AI Myths and Embracing Realities in Privacy &amp; Security<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/shaping-jakarta-agentic-ai-together-watch-the-open-conversation\/\" target=\"_blank\" rel=\"noopener\">Shaping Jakarta Agentic AI Together \u2013 Watch the Open Conversation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.selikoff.net\/2026\/03\/05\/devnexus-2026-how-i-automated-my-life-with-mcp-servers\/\" target=\"_blank\" rel=\"noopener\">how i automated my life with mcp servers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.selikoff.net\/2026\/03\/05\/devnexus-2026-10-things-i-hate-about-ai\/\" target=\"_blank\" rel=\"noopener\">10 things i hate about ai<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.frankel.ch\/writing-agent-skill\/\" target=\"_blank\" rel=\"noopener\">Writing an agent skill<\/a>&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.selikoff.net\/2026\/03\/06\/devnexus-2026-hacking-ai-how-to-survive-the-ai-uprising\/\" target=\"_blank\" rel=\"noopener\">Hacking AI \u2013 How to Survive the AI Uprising<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.selikoff.net\/2026\/03\/06\/devnexus-2026-stop-fighting-your-ai-engineering-prompts-that-actually-work\/\" target=\"_blank\" rel=\"noopener\">Stop Fighting Your AI: Engineering Prompts That Actually Work<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/presentations\/patterns-ai-native-development\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Four Patterns of AI Native Development<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/event-driven.io\/en\/interactive_rubber_ducking_with_gen_ai\/\" target=\"_blank\" rel=\"noopener\">Interactive Rubber Ducking with GenAI<\/a>&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/articles\/oil-water-moment-ai-architecture\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">The Oil and Water Moment in AI Architecture<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.selikoff.net\/2026\/03\/19\/javaone-2026-look-inside-a-large-language-model-to-become-a-better-java-developer\/\" target=\"_blank\" rel=\"noopener\">Look Inside a Large Language Model to Become a Better Java Developer<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/joshondesign.com\/2026\/03\/01\/vibecoding_experience\" target=\"_blank\" rel=\"noopener\">A Senior Engineer Tries Vibe Coding<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/how-we-built-a-java-ai-agent-by-connecting-the-dots-the-ecosystem-already-had\/\" target=\"_blank\" rel=\"noopener\">How We Built a Java AI Agent by Connecting the Dots the Ecosystem Already Had<\/a>&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Languages, Frameworks, Libraries, and Technologies<\/h2>\n\n\n\n<p>Spring updates and more tech news, all in one place:<\/p>\n\n\n\n<ul>\n<li>This Week in Spring <a href=\"https:\/\/spring.io\/blog\/2026\/03\/03\/this-week-in-spring-march-3rd-2026\" target=\"_blank\" rel=\"noopener\">1<\/a>, <a href=\"https:\/\/spring.io\/blog\/2026\/03\/10\/this-week-in-spring-march-10th-2026\" target=\"_blank\" rel=\"noopener\">2<\/a>, <a href=\"https:\/\/spring.io\/blog\/2026\/03\/17\/this-week-in-spring-march-17th-2026\" target=\"_blank\" rel=\"noopener\">3<\/a>, <a href=\"https:\/\/spring.io\/blog\/2026\/03\/24\/this-week-in-spring-march-24th-2026\" target=\"_blank\" rel=\"noopener\">4<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/data-enrichment-in-mongodb\/\" target=\"_blank\" rel=\"noopener\">Data Enrichment in MongoDB<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=UqaSWiE076w\" target=\"_blank\" rel=\"noopener\">Supercharge your JVM performance with Project Leyden and Spring Boot by Moritz Halbritter<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=D-yp3sB8cu0\" target=\"_blank\" rel=\"noopener\">A Typo Led to the Creation of Spring Cloud Contract \u2022 Marcin Grzejszczak &amp; Jakub Pilimon \u2022 GOTO 2026<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/spring.io\/blog\/2026\/03\/05\/a-bootiful-podcast-jennifer-reif\" target=\"_blank\" rel=\"noopener\">A Bootiful Podcast: Neo4j legend Jennifer Reif<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/spring.io\/blog\/2026\/03\/12\/a-bootiful-podcast-soby-chacko\" target=\"_blank\" rel=\"noopener\">A Bootiful Podcast: Spring Messaging Legend Soby Chacko<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/spring.io\/blog\/2026\/03\/18\/mcp-apps\" target=\"_blank\" rel=\"noopener\">Blending Chat with Rich UIs with Spring AI and MCP Apps<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/dzone.com\/articles\/java-microservicesscs-vs-spring-modulith\" target=\"_blank\" rel=\"noopener\">Java Microservices(SCS) vs. Spring Modulith<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/spring.io\/blog\/2026\/02\/27\/moving-beyond-strings-in-spring-data\" target=\"_blank\" rel=\"noopener\">Moving beyond Strings in Spring Data<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/quarkus.io\/blog\/new-benchmarks\/\" target=\"_blank\" rel=\"noopener\">Quarkus has great performance \u2013 and we have new evidence<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/modeling-one-to-many-relationships-in-java-with-mongodb\/\" target=\"_blank\" rel=\"noopener\">Modeling One-to-Many Relationships in Java with MongoDB<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/clean-architecture-with-spring-boot-and-mongodb\/\" target=\"_blank\" rel=\"noopener\">Clean Architecture with Spring Boot and MongoDB<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conferences and Events<\/h2>\n\n\n\n<p>Pick your next events to attend:<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/2026.springio.net\" target=\"_blank\" rel=\"noopener\">Spring I\/O<\/a> \u2013 Barcelona, Spain, April 13\u201315; Come say hi at the JetBrains booth and join the <a href=\"https:\/\/2026.springio.net\/side-events\/#community-run\" target=\"_blank\" rel=\"noopener\">community run<\/a>!&nbsp;<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/2026.springio.net\/side-events\/#community-run\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"1200\" height=\"675\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2026\/04\/image-2.jpeg\" alt=\"\" class=\"wp-image-697935\"\/><\/a><\/figure>\n\n\n\n<ul>\n<li><a href=\"https:\/\/www.javaday.istanbul\" target=\"_blank\" rel=\"noopener\">Java Day Istanbul<\/a> \u2013 Istanbul, T\u00fcrkiye, April 17\u201318; <a href=\"https:\/\/www.linkedin.com\/in\/antonarhipov\/\" target=\"_blank\" rel=\"noopener\">Anton Arhipov<\/a> is a speaker.&nbsp;&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/2026.europe.jcon.one\" target=\"_blank\" rel=\"noopener\">JCON EUROPE<\/a> \u2013 Cologne, Germany, April 20\u201323; <a href=\"https:\/\/www.linkedin.com\/in\/maritvandijk\/\" target=\"_blank\" rel=\"noopener\">Marit van Dijk<\/a> will talk about learning modern Java the playful way.<\/li>\n\n\n\n<li><a href=\"https:\/\/developersummit.com\" target=\"_blank\" rel=\"noopener\">Great International Developer Summit<\/a> \u2013 Bengaluru, India, April 21\u201324; Join Siva Katamreddy\u2019s talk on Spring AI + MCP.&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.devoxx.fr\" target=\"_blank\" rel=\"noopener\">Devoxx France<\/a> \u2013 Paris, France, April 22\u201324; Check out the talks by <a href=\"https:\/\/www.linkedin.com\/in\/antonarhipov\/\" target=\"_blank\" rel=\"noopener\">Anton Arhipov<\/a> and <a href=\"https:\/\/www.linkedin.com\/in\/maritvandijk\/\" target=\"_blank\" rel=\"noopener\">Marit van Dijk<\/a>.&nbsp;&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/devoxx.gr\" target=\"_blank\" rel=\"noopener\">Devoxx Greece<\/a> \u2013 Athens, Greece, April 23\u201325; <a href=\"https:\/\/www.linkedin.com\/in\/maritvandijk\/\" target=\"_blank\" rel=\"noopener\">Marit van Dijk<\/a> is a speaker.&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/romania.voxxeddays.com\/voxxed-days-bucharest-2026\/\" target=\"_blank\" rel=\"noopener\">Voxxed Days Bucharest<\/a> \u2013 Bucharest, Romania, April 28\u201329; And if you haven\u2019t caught <a href=\"https:\/\/www.linkedin.com\/in\/maritvandijk\/\" target=\"_blank\" rel=\"noopener\">Marit van Dijk<\/a> during this busy month of hers, here\u2019s the last chance to hear her speak in April.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Culture and Community<\/h2>\n\n\n\n<p>Your go-to section to slow down and think about the industry, self-growth, and more:<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/www.infoq.com\/podcasts\/mindful-leadership\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Mindful Leadership in the Age of AI<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/joshondesign.com\/2026\/03\/19\/software-joy\" target=\"_blank\" rel=\"noopener\">Can we still make software that sparks joy?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/podcasts\/hidden-driver-engineering-culture\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Information Flow: The Hidden Driver of Engineering Culture<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/presentations\/cultural-alignment\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Beyond the Code: Hiring for Cultural Alignment<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/language-learning-flashcard-system-part-1\/\" target=\"_blank\" rel=\"noopener\">Build a Spaced Repetition Flashcard API with Spring Boot &amp; MongoDB (Part 1)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/news\/2026\/03\/mf-aiassisted-dev\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Where Do Humans Fit in AI-Assisted Software Development?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/news\/2026\/03\/green-IT-AI-impact\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Green IT: How to Reduce the Impact of AI on the Environment<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/does-language-still-matter-in-the-age-of-ai-yes-but-the-tradeoff-has-changed\/\" target=\"_blank\" rel=\"noopener\">Does Language Still Matter in the Age of AI? Yes \u2014 But the Tradeoff Has Changed<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=Kourq_Lz03U\" target=\"_blank\" rel=\"noopener\">IntelliJ IDEA: The Documentary | An origin story<\/a>&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/blog.frankel.ch\/software-architect-elevator\/\" target=\"_blank\" rel=\"noopener\">The Software Architect Elevator<\/a>&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">And Finally\u2026<\/h2>\n\n\n\n<p>Top picks from the IntelliJ IDEA blog:<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2026\/03\/whats-fixed-intellij-idea-2026-1\/\">What\u2019s fixed in IntelliJ IDEA 2026.1<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2026\/03\/java-26-in-intellij-idea\/\">Java 26 in IntelliJ IDEA<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2026\/03\/intellij-idea-s-new-kotlin-coroutine-inspections-explained\/\">IntelliJ IDEA\u2019s New Kotlin Coroutine Inspections, Explained<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/ai\/2026\/03\/cursor-joined-the-acp-registry-and-is-now-live-in-your-jetbrains-ide\/\">Cursor Joined the ACP Registry and Is Now Live in Your JetBrains IDE<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/platform\/2026\/03\/sunsetting-code-with-me\/\">Sunsetting Code With Me<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/ai\/2026\/03\/koog-comes-to-java\/\">Koog Comes to Java: The Enterprise AI Agent Framework From JetBrains<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2026\/03\/ai-assisted-java-application-development-with-agent-skills\/\">AI-Assisted Java Application Development with Agent Skills<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2026\/03\/js-ts-free-support\/\">Core JavaScript and TypeScript Features Become Free in IntelliJ IDEA<\/a><\/li>\n<\/ul>\n\n\n\n<p>That\u2019s it for today! We\u2019re always collecting ideas for the next Java Annotated Monthly \u2013 send us your suggestions via <a href=\"https:\/\/mail.google.com\/mail\/u\/0\/?fs=1&amp;tf=cm&amp;source=mailto&amp;to=JAM@jetbrains.com\" target=\"_blank\" rel=\"noopener\">email<\/a> or <a href=\"https:\/\/x.com\/intellijidea?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor\" target=\"_blank\">X<\/a> by April 20. Don\u2019t forget to check out our archive of <a href=\"https:\/\/www.jetbrains.com\/lp\/jam\/\" target=\"_blank\" rel=\"noopener\">past JAM issues<\/a> for any articles you might have missed!<\/p>\n","protected":false},"author":1138,"featured_media":697946,"comment_status":"closed","ping_status":"closed","template":"","categories":[89],"tags":[6847,155,3236,8647,21,276],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/idea\/697934"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/idea"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/types\/idea"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/users\/1138"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/comments?post=697934"}],"version-history":[{"count":5,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/idea\/697934\/revisions"}],"predecessor-version":[{"id":697994,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/idea\/697934\/revisions\/697994"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media\/697946"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media?parent=697934"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/categories?post=697934"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/tags?post=697934"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/cross-post-tag?post=697934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}