Making software easier to understand, evolve and operate.

Debugging Spring Boot Applications With IntelliJ IDEA

🎯 Featured Article

🪲 Debugging Spring Boot Applications With IntelliJ IDEA Spring Debugger adds runtime visibility for beans, configuration, transactions, databases and security directly to IntelliJ IDEA’s debugging workflow.

  • Runtime views expose which beans and configuration values are actually active.
  • Debugging can inspect transactions, databases, security and application state.

⏩ TL;DR (Quick Recap)

  • Debugging tools increasingly expose runtime behavior directly in the IDE.
  • Coding agents are shifting how software is specified, built and migrated.
  • Java 27 adds nine JEP-level enhancements across language and runtime areas.
  • Rust migrations show agents can support incremental production rewrites.

☕ JVM Corner

📝 From Spec-Driven Development to Living Specifications in Java Projects How specifications can preserve engineering intent while giving coding agents more freedom to implement Java projects.

  • Living specifications provide constraints without prescribing every implementation detail.
  • Agent autonomy still requires explicit engineering intent and boundaries.

📚 My Ten Year Quest to Evolve Java Collections Beyond Java Stream Examines the long effort to extend Java collections beyond the capabilities of the standard Stream API.

  • Eclipse Collections remains an alternative for richer collection operations.
  • The article argues that library evolution can continue outside the JDK.

🚀 The Arrival of Java 27! Generally available with nine JEP-level enhancements spanning language, security, runtime, performance and libraries.

  • Four of the nine JEP-level enhancements are preview features.
  • JEP 527 adds post-quantum hybrid key exchange support for TLS 1.3.

🍃 Spring Updates

🔐 Debug Past an HTTP 403 Without Breaking Spring Security IntelliJ IDEA’s security inlays let developers inspect and adjust runtime endpoint authorization while debugging Spring applications.

  • Runtime security information can be inspected directly beside endpoints.
  • Temporary endpoint unlocking avoids changing application security configuration.

🛡️ Spring AI Recipe: Securing an MCP Server with OAuth Demonstrates OAuth 2.0 protection for Spring AI MCP servers with authorization applied to individual tools.

  • OAuth 2.0 provides stronger authentication than a single API key.
  • Fine-grained authorization can restrict access to individual MCP tools.

⚙️ Spring Batch Partitioning and Parallel Steps: Scaling a 10-Million-Row Job Spring Batch partitioning for large jobs and the practical limits of worker parallelism and partition coordination.

  • Partitioning distributes large jobs across multiple worker threads.
  • Rejected partitions and grid-size assumptions can affect completion and speedup.

🔑 Spring Authorization Server in Action: Securing Modern Applications with OAuth 2.1 Walks through a Spring Authorization Server implementation using PostgreSQL, OAuth 2.1, PKCE and JWT-based authentication.
🧪 Testing your Spring Boot auto-configuration against a missing optional dependency How a custom class loader can test Spring Boot auto-configuration, when optional dependencies are absent from the classpath.

🔍 Extra Reads

Agentic Software Engineering
🧠 How to name things — Good names encode intent and context, making software easier for both people and AI tools to understand.
🛠️ A coding agent is six functions in a trenchcoat — A minimal coding agent can combine file access, editing, searching and shell execution into a small toolset.
🤖 TODOs Considered Harmful — Ambiguous TODO comments can become risky instructions when coding agents act on repository context with less human oversight.
🦀 Migrating the GitHub Copilot runtime to Rust, using Copilot — GitHub describes rewriting more than 800,000 lines of Copilot runtime code in Rust with AI agents across 128 pull requests.

Debugging & Performance
⏱️ A faster way to convert a timestamp ➜ Hour, Min, Sec — Reordering timestamp calculations can reduce dependency chains and replace repeated division with fixed-point multiplication.
🔎 Logpoints Walkthrough — Breakpoint-style diagnostics without modifying source code or restarting the application.
🦀 Rust debugging survey 2026 results — Rust’s first debugging survey collected more than 2,300 responses about debugger usage and developer pain points.

Architecture & Engineering Decisions
🧱 The most important product decision is what you don’t build — Product decisions through the work deliberately excluded or removed from consumer financial applications.
💾 Backups aren’t simple — A personal data-loss story illustrates why backups require deliberate processes rather than assumptions.
🎨 The CSS Zen Garden dream, finally shipped — Rebuilding Firefox.com with native CSS explores what modern CSS means for design systems and preprocessing.

Originally posted on marconak-matej.medium.com.