{"id":589949,"date":"2025-08-06T12:17:24","date_gmt":"2025-08-06T11:17:24","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=idea&#038;p=589949"},"modified":"2025-08-06T12:17:30","modified_gmt":"2025-08-06T11:17:30","slug":"java-annotated-monthly-august-2025","status":"publish","type":"idea","link":"https:\/\/blog.jetbrains.com\/de\/idea\/2025\/08\/java-annotated-monthly-august-2025","title":{"rendered":"Java Annotated Monthly \u2013 August 2025"},"content":{"rendered":"\n<p>Welcome to this month\u2019s Java Annotated Monthly \u2013 your pit stop for all things related to Java, Kotlin, frameworks, and the ever-shifting tech scene. From helpful reads to red-hot takes, we\u2019ve lined up a range of articles for curious devs and ambitious teams.<\/p>\n\n\n\n<p>But wait, there&#8217;s more! As always, our AI corner is here, and we\u2019ve sprinkled in some thought-provoking, non-tech gems on building better teams and smarter products.<br>Oh, and don\u2019t miss the special feature by <a href=\"https:\/\/bazlur.ca\/\" target=\"_blank\" rel=\"noopener\">A N M Bazlur Rahman<\/a>! He\u2019s bringing you his top picks, personal reflections, and sharp takes on where the dev world\u2019s heading. Trust us, it&#8217;s a ride worth taking.<\/p>\n\n\n\n<p>Let\u2019s go!&nbsp;<\/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\/2025\/08\/bazlur_rahman.jpg\" alt=\"\" loading=\"lazy\">\n                        <\/div>\n                                        <div class=\"about-author__box-text\">\n                                                    <h4>A N M Bazlur Rahman<\/h4>\n                                                <p><!-- wp:paragraph --><\/p>\n<p>A N M Bazlur Rahman is a Java Champion, Jakarta EE Ambassador, and Software Engineer with over 12 years of specialized experience in Java and related technologies. He is the founder and moderator of the Java User Group in Bangladesh, and has been organizing educational meetups and conferences since 2013. Bazlur is a veteran editor at <a href=\"https:\/\/www.infoq.com\/profile\/A-N-M-Bazlur-Rahman\/#allActivity\" target=\"_blank\" rel=\"noopener\">InfoQ<\/a> and a contributing editor at <a href=\"https:\/\/foojay.io\/today\/author\/bazlur-rahman\/\" target=\"_blank\" rel=\"noopener\">Foojay.io<\/a>. He has authored six books on Java programming, including <a href=\"https:\/\/learning.oreilly.com\/library\/view\/modern-concurrency-in\/9781098165406\/\" target=\"_blank\" rel=\"noopener\"><em>Modern Concurrency in Java<\/em><\/a> with O\u2019Reilly, scheduled for release in September. He is also working on his seventh book, <em>Build Smart Java<\/em> <em>Applications<\/em> <em>with Large Language Models,<\/em> with his friend Shaaf Syed and Manning Publications. When not coding or writing, you can find him speaking at conferences and Java User Groups, sharing his passion for Java, Jakarta EE, and the integration of AI technologies into enterprise applications.<\/p>\n<p><!-- \/wp:paragraph --> <!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\"><\/h3>\n<p><!-- \/wp:heading --><\/p>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/div>\n\n\n\n<p><strong>Java and AI integration takes center stage<\/strong><\/p>\n\n\n\n<p>As a Java developer with a recent interest in the AI integration space, I&#8217;m excited to share what I consider the most transformative period in Java&#8217;s 30-year history. The ecosystem has reached a tipping point where AI integration is no longer experimental. It&#8217;s production-ready, and Java developers are embracing it at an unprecedented pace. From my recent talk at <a href=\"https:\/\/bazlur.ca\/2025\/05\/25\/speaking-at-geecon-2025-krakow-experience\/\" target=\"_blank\" rel=\"noopener\">GeeCON 2025 in Krak\u00f3w<\/a> to my hands-on experiments building AI-powered applications, I&#8217;ve witnessed firsthand how Java is becoming the go-to platform for enterprise AI development.<\/p>\n\n\n\n<p>The foundation of this revolution lies in the language itself. <a href=\"https:\/\/openjdk.org\/projects\/jdk\/25\/\" target=\"_blank\" rel=\"noopener\">JDK 25 is shaping up to be a landmark release<\/a>, with features that directly benefit AI workloads. The game changer is <a href=\"https:\/\/www.infoq.com\/news\/2025\/06\/java-25-compact-object-headers\/\" target=\"_blank\" rel=\"noopener\">JEP 519: Compact Object Headers<\/a>, with <a href=\"https:\/\/github.com\/rkennke\/talks\/blob\/master\/Lilliput-FOSDEM-2025.pdf\" target=\"_blank\" rel=\"noopener\">Amazon reporting 22% less heap usage and 8% faster execution<\/a> in production. However, what really excites me is <a href=\"https:\/\/www.infoq.com\/news\/2025\/05\/jep-505-concurrency-preview-5\/\" target=\"_blank\" rel=\"noopener\">JEP 505: Structured Concurrency (Fifth Preview)<\/a>, which I explored in depth in my article, <a href=\"https:\/\/bazlur.ca\/2025\/05\/25\/javas-structured-concurrency-finally-finding-its-footing\/\" target=\"_blank\" rel=\"noopener\"><em>Java&#8217;s Structured Concurrency: Finally Finding Its Footing<\/em><\/a>. This feature simplifies concurrent programming by treating related tasks as single units, making them ideal for orchestrating multiple AI model calls. Combined with <a href=\"https:\/\/www.infoq.com\/news\/2025\/05\/jdk25-instance-main-methods\/\" target=\"_blank\" rel=\"noopener\">instance main methods becoming final in JDK 25<\/a>, which provides a pleasing experience for beginners, <a href=\"https:\/\/openjdk.org\/projects\/leyden\/\" target=\"_blank\" rel=\"noopener\">Project Leyden<\/a> and the evolving Vector API are positioning Java as a serious contender for AI workloads.<\/p>\n\n\n\n<p>The framework landscape has me particularly excited. The <a href=\"https:\/\/www.infoq.com\/news\/2025\/05\/spring-ai-1-0-streamlines-apps\/\" target=\"_blank\" rel=\"noopener\">general availability of Spring AI 1.0<\/a> streamlines AI app development with support for 20+ models and built-in RAG capabilities. <a href=\"https:\/\/github.com\/langchain4j\/langchain4j\/releases\" target=\"_blank\" rel=\"noopener\">LangChain4j&#8217;s 1.1.0 release<\/a> introduces comprehensive guardrail support \u2013 something I&#8217;ve written about extensively in <a href=\"https:\/\/bazlur.ca\/2025\/06\/21\/building-robust-ai-applications-with-langchain4j-guardrails-and-spring-boot\/\" target=\"_blank\" rel=\"noopener\"><em>Building Robust AI Applications with LangChain4j Guardrails and Spring Boot<\/em><\/a>, complete with plenty of code examples. Microsoft&#8217;s <a href=\"https:\/\/devblogs.microsoft.com\/java\/microsoft-and-langchain4j-a-partnership-for-secure-enterprise-grade-java-ai-applications\/\" target=\"_blank\" rel=\"noopener\">strategic partnership with LangChain4j<\/a> has resulted in extensive security audits, making it truly enterprise-ready. However, the real showstopper is Rod Johnson&#8217;s <a href=\"https:\/\/www.infoq.com\/news\/2025\/06\/introducing-embabel-ai-agent\/\" target=\"_blank\" rel=\"noopener\">Embabel agent framework<\/a>, which he describes as &#8220;the most significant project since Spring Framework itself.&#8221; It brings goal-oriented action planning from gaming to create deterministic, explainable AI agents with strong typing. What&#8217;s equally exciting is seeing<a href=\"https:\/\/github.com\/langchain4j\/langchain4j-cdi\" target=\"_blank\" rel=\"noopener\"> the integration of LangChain4j with MicroProfile and Jakarta specifications<\/a> take shape, bringing AI capabilities to enterprise Java standards.&nbsp;<\/p>\n\n\n\n<p>To help developers navigate this landscape, my friend <a href=\"https:\/\/www.linkedin.com\/in\/shaaf\/\" target=\"_blank\" rel=\"noopener\">Shaaf Syed<\/a> and I created the <a href=\"https:\/\/github.com\/learnj-ai\/llm-jakarta\" target=\"_blank\" rel=\"noopener\">llm-jakarta GitHub project<\/a>, which provides a progressive learning path through Jakarta EE and LLM integration, comprising 10 practical steps. We plan to add more examples combining Spring Boot and Quarkus soon.\u00a0<br>For those interested in GPU acceleration, I recommend checking out <a href=\"https:\/\/www.infoq.com\/news\/2025\/06\/gpullama3-java-gpu-llm\/\" target=\"_blank\" rel=\"noopener\"><em>GPULlama3.java Brings GPU-Accelerated LLM Inference to Pure Java<\/em><\/a>, which showcases how Java can leverage hardware acceleration for AI workloads.<\/p>\n\n\n\n<p>Cloud providers are fully committed to Java&#8217;s AI future. Oracle launched <a href=\"https:\/\/docs.oracle.com\/en-us\/iaas\/releasenotes\/generative-ai\/langchain4j.htm\" target=\"_blank\" rel=\"noopener\">generative AI with LangChain4j integration<\/a>, and Google released their <a href=\"https:\/\/google.github.io\/adk-docs\/#java\" target=\"_blank\" rel=\"noopener\">Agent Development Kit for Java<\/a>, both of which are crucial for adopting modern AI features. Microsoft&#8217;s comprehensive <a href=\"https:\/\/devblogs.microsoft.com\/java\/the-state-of-coding-the-future-with-java-and-ai\/\" target=\"_blank\" rel=\"noopener\">Java and AI strategy<\/a> includes native integration with Azure.&nbsp;<\/p>\n\n\n\n<p>I&#8217;ve been experimenting with these features extensively, documenting my findings in my newsletter, <a href=\"https:\/\/bazlur.substack.com\/\" target=\"_blank\" rel=\"noopener\"><em>The Coding Caf\u00e9<\/em><\/a>, where I share practical experiments, such <a href=\"https:\/\/bazlur.substack.com\/p\/building-formpilot-my-journey-creating\" target=\"_blank\" rel=\"noopener\">as building FormPilot<\/a> and creating an <a href=\"https:\/\/bazlur.substack.com\/p\/building-an-ai-powered-flight-tracker\" target=\"_blank\" rel=\"noopener\">AI-powered flight tracker<\/a>. Join me as we explore this exciting frontier where Java&#8217;s enterprise strengths meet cutting-edge AI capabilities!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Java News<\/h2>\n\n\n\n<p>Check out the recent Java news:&nbsp;<\/p>\n\n\n\n<ul>\n<li>Java News Roundup <a href=\"https:\/\/www.infoq.com\/news\/2025\/07\/java-news-roundup-jun30-2025\/?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\/2025\/07\/java-news-roundup-jul07-2025\/?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\/2025\/07\/java-news-roundup-jul14-2025\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">3<\/a>, <a href=\"https:\/\/www.infoq.com\/news\/2025\/07\/java-news-roundup-jul21-2025\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">4<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/03\/newscast-94\/\" target=\"_blank\" rel=\"noopener\">Java 25 is ALSO no LTS Version &#8211; Inside Java Newscast #94<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/14\/javaone-hat\/\" target=\"_blank\" rel=\"noopener\">Java GPGPU Enablement: Are We There Yet?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/17\/newscast-95\/\" target=\"_blank\" rel=\"noopener\">Java Gets a JSON API &#8211; Inside Java Newscast #95<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Here are the JEPs targeted to JDK 25:\u00a0<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/inside.java\/2025\/07\/18\/jep515-target-jdk25\/\" target=\"_blank\" rel=\"noopener\">JEP 515: Ahead-of-Time Method Profiling<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/21\/jep518-target-jdk25\/\" target=\"_blank\" rel=\"noopener\">JEP 518: JFR Cooperative Sampling<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/25\/jep520-target-jdk25\/\" target=\"_blank\" rel=\"noopener\">JEP 520: JFR Method Timing &amp; Tracing<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Java Tutorials and Tips<\/h2>\n\n\n\n<p>Learn new things from our selection of Java tutorials and tips:&nbsp;<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/spring.io\/blog\/2025\/07\/03\/a-bootiful-podcast-dr-heinz-kabutz\" target=\"_blank\" rel=\"noopener\">A Bootiful Podcast: Dr. Heinz Kabutz, a legendary Java Champion, teacher, and author of the Java Specialists newsletter!<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.rweisleder.de\/posts\/java-regex-dynamic-replacement\/\" target=\"_blank\" rel=\"noopener\">Java Regex: Dynamic Replacements with Lambda Expressions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/java-virtual-threads-in-action-optimizing-mongodb-operation\/\" target=\"_blank\" rel=\"noopener\">Java Virtual Threads in Action: Optimizing MongoDB Operation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2025\/07\/module-import-declarations-no-more-import-hell\/\">Module Import Declarations: No More Import Hell&nbsp;<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/02\/feature-faceoff-2025\/\" target=\"_blank\" rel=\"noopener\">Best of Java Feature Face-Off &#8211; Celebrating 30 Years of Java: The Programming Language That Changed the World<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/08\/javaone-marshalling\/\" target=\"_blank\" rel=\"noopener\">Marshalling: Data-Oriented Serialization<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/podcasts\/java-ecosystem-continuously-adapting-developers\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">The Java Ecosystem Remains Ever-Green By Continuously Adapting to Developers&#8217; Needs<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/22\/javaone-stablevalues\/\" target=\"_blank\" rel=\"noopener\">A Sneak Peek at the Stable Values API<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/29\/just-be-lazy\/\" target=\"_blank\" rel=\"noopener\">Just Be Lazy<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/java-22-to-24-level-up-your-java-code-by-embracing-new-features-in-a-safe-way\/\" target=\"_blank\" rel=\"noopener\">Java 22 to 24: Level up your Java Code by embracing new features in a safe way<\/a>&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/lucumr.pocoo.org\/2025\/7\/26\/virtual-threads\/\" target=\"_blank\" rel=\"noopener\">From Async\/Await to Virtual Threads<\/a><strong>\u00a0<\/strong><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/28\/podcast-039\/\" target=\"_blank\" rel=\"noopener\">Episode 39 \u201cDeprecations &amp; Removals\u201d with Stuart Marks<\/a><strong>\u00a0<\/strong><\/li>\n\n\n\n<li><a href=\"https:\/\/spring.io\/blog\/2025\/07\/24\/a-bootiful-podcast-jose-paumard\" target=\"_blank\" rel=\"noopener\">A Bootiful Podcast: Jos\u00e9 Paumard, Java developer advocate and professor<\/a><strong>\u00a0<\/strong><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.eisele.net\/2025\/07\/six-months-of-enterprise-java-and.html\" target=\"_blank\" rel=\"noopener\">Six Months of Enterprise Java and Quarkus and What Comes Next<\/a><strong>\u00a0<\/strong><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/22\/javaone-stablevalues\/\" target=\"_blank\" rel=\"noopener\">A Sneak Peek at the Stable Values API<\/a><strong>\u00a0<\/strong><\/li>\n\n\n\n<li><a href=\"https:\/\/inside.java\/2025\/07\/20\/javaone-security\/\" target=\"_blank\" rel=\"noopener\">Java Security Evolution \u2013 Out with the Old, In with the New<\/a><strong>\u00a0<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Kotlin Corner<\/h2>\n\n\n\n<p>Don\u2019t miss these Kotlin updates:&nbsp;<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/jdriven.com\/blog\/2025\/04\/Trying-to-typeclass-in-Kotlin\" target=\"_blank\" rel=\"noopener\">Trying to typeclass in Kotlin<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/ing-kotlin-adoption-five-years\/\" target=\"_blank\" rel=\"noopener\">Kotlin adoption inside ING, five years later<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2025\/07\/case-study-why-kakao-pay-chose-kotlin-for-backend-development\/\">Case Study: Why Kakao Pay Chose Kotlin for Backend Development<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2025\/07\/kodees-kotlin-roundup-june-edition\/\">Kodee\u2019s Kotlin Roundup: A Carefully Curated June Edition<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2025\/07\/modular-ktor-building-backends-for-scale\/\">Modular Ktor: Building Backends for Scale<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/ai\/2025\/07\/when-tool-calling-becomes-an-addiction-debugging-llm-patterns-in-koog\/\">When Tool-Calling Becomes an Addiction: Debugging LLM Patterns in Koog<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2025\/07\/kmp-shipaton\/\">Ship, Share, and Win: The Kotlin Multiplatform Award at Shipaton 2025<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/ai\/2025\/07\/koog-building-and-scaling-ai-agents-join-our-livestream-series\/\">Koog: Building and Scaling AI Agents \u2013 Join Our Livestream Series<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">AI<\/h2>\n\n\n\n<p>Stay up to date with AI news and insights:&nbsp;<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kineto\/2025\/08\/make-your-ideas-clickable-with-kineto-by-jetbrains\/\">Make Your Ideas Clickable With Kineto by JetBrains<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/news\/2025\/07\/google-gemini-cli\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Google Launches Gemini CLI: Open-Source Terminal AI Agent for Developers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/articles\/effective-practices-ai-chat-based-coding\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Effective Practices for Coding with a Chat-Based AI<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/presentations\/llm-ai-agents\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">AI Agents &amp; LLMs: Scaling the Next Wave of Automation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/news\/2025\/07\/hugging-face-reachy\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Hugging Face Launches Reachy Mini Robots for Human-Robot Interaction<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/the-great-data-reimagination-from-static-to-agile-in-the-ai-era\/\" target=\"_blank\" rel=\"noopener\">The Great Data Reimagination: From Static to Agile in the AI Era<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/glaforge.dev\/talks\/2025\/07\/16\/ai-agents-the-new-frontier-for-llms\/\" target=\"_blank\" rel=\"noopener\">AI Agents, the New Frontier for LLMs<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/podcasts\/building-product-first-engineering-culture\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Building a Product-First Engineering Culture in the Age of AI<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/glaforge.dev\/posts\/2025\/07\/24\/mastering-agentic-workflows-with-adk-sequential-agent\/\" target=\"_blank\" rel=\"noopener\">Mastering agentic workflows with ADK for Java: Sequential agents<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/building-robust-ai-applications-with-langchain4j-guardrails-and-spring-boot\/\" target=\"_blank\" rel=\"noopener\">Robust AI Applications with LangChain4j Guardrails and Spring Boot<\/a>&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/martinfowler.com\/articles\/20250721-links.html\" target=\"_blank\" rel=\"noopener\">Generative AI in software and essaying<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/education\/2025\/07\/31\/ai-agents-free-course\/\">Why AI Agents as Your Team Should Be Your Next Learning Move<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/ai\/2025\/07\/small-models-big-impact-why-jetbrains-is-betting-on-focal-llms\/\">Small Models, Big Impact: Why JetBrains is Betting on Focal LLMs<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/ai\/2025\/07\/the-future-of-ai-in-software-development\/\">The Future of AI in Software Development<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/ai\/2025\/07\/what-the-google-x-jetbrains-hackathon-tells-us-about-the-future-of-ai-at-jetbrains\/\">What the Google x JetBrains Hackathon Tells Us About the Future of AI at JetBrains<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Languages, Frameworks, Libraries, and Technologies<\/h2>\n\n\n\n<p>Read about the most influential technologies and frameworks in the industry:&nbsp;<\/p>\n\n\n\n<ul>\n<li>This Week in Spring <a href=\"https:\/\/spring.io\/blog\/2025\/07\/01\/this-week-in-spring-july-01-2025\" target=\"_blank\" rel=\"noopener\">1<\/a>, <a href=\"https:\/\/spring.io\/blog\/2025\/07\/08\/this-week-in-spring-july-8th-2025\" target=\"_blank\" rel=\"noopener\">2<\/a>, <a href=\"https:\/\/spring.io\/blog\/2025\/07\/15\/this-week-in-spring-july-15-2025\" target=\"_blank\" rel=\"noopener\">3<\/a>, <a href=\"https:\/\/www.infoq.com\/news\/2025\/07\/spring-news-roundup-jul21-2025\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">4<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/4comprehension.com\/accidental-time-travel-with-wiremock\/\" target=\"_blank\" rel=\"noopener\">Accidental Time Travel with Wiremock, SimpleDateFormat and Fractional Seconds<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=t34TEVx5YuM\" target=\"_blank\" rel=\"noopener\">Spring Debugger ? Instantly Fix Spring Boot Errors &amp; Debug Everything On the Fly!<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=K2tYAHG2XJ8\" target=\"_blank\" rel=\"noopener\">Spring Debugger: A New Way To Demystify Spring Boot&#8217;s Magic by Marco Behler @ Spring I\/O 2025<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/mydeveloperplanet.com\/2025\/05\/14\/testing-java-applications-with-wiremock-and-spring-boot\/\" target=\"_blank\" rel=\"noopener\">Testing Java Applications with WireMock and Spring Boot<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/data-modeling-for-java-developers-structuring-with-postgresql-and-mongodb\/\" target=\"_blank\" rel=\"noopener\">Data Modeling for Java Developers: Structuring With PostgreSQL and MongoDB<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/glaforge.dev\/posts\/2025\/07\/06\/advanced-rag-hypothetical-question-embedding\/\" target=\"_blank\" rel=\"noopener\">Advanced RAG \u2014 Hypothetical Question Embedding<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/building-a-spring-boot-crud-application-using-mongodbs-relational-migrator\/\" target=\"_blank\" rel=\"noopener\">Building a Spring Boot CRUD Application Using MongoDB\u2019s Relational Migrator<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/news\/2025\/07\/meta-rust-dx\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">From C to Rust: Inside Meta\u2019s Developer-Led Messaging Migration<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/news\/2025\/07\/pair-programming-speed-flow\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">How Pair Programming Enhanced Development Speed, Focus, and Flow<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/spring.io\/blog\/2025\/07\/10\/a-bootiful-podcast-arjen-poutsma\" target=\"_blank\" rel=\"noopener\">A Bootiful Podcast: API oracle Arjen Poutsma<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/getting-started-with-scala\/\" target=\"_blank\" rel=\"noopener\">Getting Started With Scala<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/how-to-make-a-rag-application-with-langchain4j\/\" target=\"_blank\" rel=\"noopener\">How to Make a RAG Application With LangChain4j<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.frankel.ch\/git-default-options\/\" target=\"_blank\" rel=\"noopener\">Git default options<\/a>&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/spring-cloud-stream-event-driven-architecture-part-1\/\" target=\"_blank\" rel=\"noopener\">Spring Cloud Stream: Event-Driven Architecture \u2013 Part 1<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.vanillajava.blog\/2025\/07\/improving-prompt-to-ai-to-get-better.html\" target=\"_blank\" rel=\"noopener\">Improving the prompt to the AI to get better code<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conferences and Events<\/h2>\n\n\n\n<p>Visit these Java events in August and watch some helpful recordings:&nbsp;<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/openjdk.org\/projects\/mlvm\/jvmlangsummit\/\" target=\"_blank\" rel=\"noopener\">JVM Language Summit<\/a> \u2013 Santa Clara, CA, USA, August 4\u20136<\/li>\n\n\n\n<li><a href=\"https:\/\/www.jcrete.org\/\" target=\"_blank\" rel=\"noopener\">JCrete<\/a> \u2013 Crete, Greece, August 4\u20138<\/li>\n\n\n\n<li><a href=\"https:\/\/www.vmware.com\/explore\/us\/springone\" target=\"_blank\" rel=\"noopener\">SpringOne<\/a> \u2013 Las Vegas, NV, USA, August 25\u201328<\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=iPZZm2PLLWc&amp;list=PLPZy-hmwOdEV1aAV4qqXkqde7OpjsVLfb\" target=\"_blank\" rel=\"noopener\">IntelliJ IDEA Conf 2025<\/a> \u2013 Check out the full playlist with the talks<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Culture and Community<\/h2>\n\n\n\n<p>Be a great leader and a perfect team player:&nbsp;<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/www.infoq.com\/articles\/guide-curating-technical-conference-track\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">A First-Timer\u2019s Guide to Curating a Technical Conference Track<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/podcasts\/trust-leadership-building-great-teams\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">Trust-first Leadership and Building Great Teams<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoq.com\/presentations\/junior-principal-lessons\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global\" target=\"_blank\" rel=\"noopener\">From Junior to Staff and beyond: Lessons Learned<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/why-mirroring-production-in-dev-helps-you-avoid-costly-mistakes\/\" target=\"_blank\" rel=\"noopener\">Why Mirroring Production in Dev Helps You Avoid Costly Mistakes<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/lucumr.pocoo.org\/2025\/7\/20\/the-next-generation\/\" target=\"_blank\" rel=\"noopener\">Welcoming The Next Generation of Programmers<\/a>\u00a0<\/li>\n\n\n\n<li><a href=\"https:\/\/blog.thepete.net\/blog\/2025\/06\/26\/leading-your-engineers-towards-an-ai-assisted-future\/\" target=\"_blank\" rel=\"noopener\">Leading your engineers towards an AI-assisted future<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">And Finally\u2026<\/h2>\n\n\n\n<p>Don\u2019t miss the most important updates from the IntellIJ IDEA team:&nbsp;<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2025\/07\/spring-debugger-working-with-dynamic-database-connections-just-got-simpler\/\">Spring Debugger: Working With Dynamic Database Connections Just Got Simpler<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2025\/07\/intellij-idea-unified-distribution-plan\/\">IntelliJ IDEA Moves to the Unified Distribution<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2025\/07\/intellij-idea-2025-2-beta\/\">IntelliJ IDEA 2025.2 Beta: EAP Closure and Our New Approach to Release Updates<\/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 August 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":589964,"comment_status":"closed","ping_status":"closed","template":"","categories":[89],"tags":[6847,155,3236,8647,21,276,8826],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/idea\/589949"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/idea"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/types\/idea"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/users\/1138"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/comments?post=589949"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/idea\/589949\/revisions"}],"predecessor-version":[{"id":590230,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/idea\/589949\/revisions\/590230"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media\/589964"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media?parent=589949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/categories?post=589949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/tags?post=589949"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/cross-post-tag?post=589949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}