Spring Boot Architecture Explorer

Open a Spring Boot project to map its controllers, services and repositories — then ask questions about any method in it.

  • Nothing is uploaded to scan. The Java parser is a WebAssembly module running in this tab.
  • Real AST, not regex. Records, text blocks and modern syntax all parse correctly.
  • Method-level answers. Name a method and its actual source is used, not a guess from the name.

About the Spring Boot Architecture Explorer

Joining a Spring Boot codebase means answering the same questions every time: what endpoints exist, which service backs each one, and which repositories actually touch the database. Those answers are spread across dozens of files, and searching for them is slow because the information is structural — an annotation here, a constructor parameter there — rather than a phrase you can grep for.

This tool parses your Java sources into a real syntax tree using a tree-sitter grammar compiled to WebAssembly, then reads the Spring stereotypes out of it. Because it works from the AST rather than text matching, it resolves a controller’s full route by combining the class-level @RequestMapping with each method’s mapping annotation, and follows constructor parameters to work out which classes depend on which.

Every method is indexed too, so asking about a specific one returns its actual body rather than a guess based on its name. Scanning happens entirely inside your browser tab — which matters here more than for most tools, because the developers who most want a map of a service are usually working on code they are not permitted to upload anywhere.

Frequently Asked Questions

Is my source code uploaded anywhere?

The Java parser runs entirely inside your browser as a WebAssembly module, and your files are read locally with the File API. Nothing is uploaded during scanning. If you turn on AI mode, only what your question needs is sent to the AI provider: a structural summary, the source of the methods involved, and — for questions about configuration or security — property values from your config files, with passwords, secrets, API keys and tokens replaced by ***REDACTED*** first. Before the first question of each visit you are shown the exact payload, itemised, and can decline.

Why does it need the whole project folder?

Because the interesting questions are cross-file. Which service does this controller call, and which repository does that service use, are relationships between files. A single pasted file can only ever tell you about itself.

How does it find a specific method?

Every method and constructor is indexed during the scan with its class, signature, line range and source offsets. When your question names a method, the exact body is sliced out of the file you selected and sent with the question — so the answer is based on the real code rather than on the method's name.

Which Spring components does it detect?

Classes annotated @RestController, @Controller, @Service, @Repository, @Component, @Configuration and @ControllerAdvice, plus Spring Data repository interfaces extending JpaRepository, CrudRepository and similar. For controllers it resolves the full endpoint path by combining class-level @RequestMapping with the method-level mapping annotation.

Does it handle records, text blocks and modern Java syntax?

Yes. The grammar is a current tree-sitter Java grammar, so records, text blocks, sealed types, switch expressions and pattern matching all parse correctly. Any file that cannot be parsed is listed explicitly rather than being quietly skipped.

How large a project can it handle?

Scanning runs inside a background Web Worker, so the tab stays responsive no matter how long a project takes to parse — comfortably up to the 5,000–10,000 Java file range, with a progress bar and a Cancel button throughout. Beyond that scale memory becomes the limiting factor rather than responsiveness, and the api-agent-mcp server running in your IDE has no such ceiling.