# spring-projects/spring-boot architecture

> Architecture diagram of the GitHub repository spring-projects/spring-boot, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/spring-projects/spring-boot
- Repository: https://github.com/spring-projects/spring-boot

## Overview

Spring Boot is a framework for creating and running Spring-powered Java applications, with build-plugin and CLI support. The documented user journey is to create an application, then run it as an executable JAR or deploy it as a WAR; the CLI also runs Spring scripts. The tree shows additional runtime and image-building subsystems. Source excerpts are limited, so links between unsampled subsystems are omitted rather than inferred.

Main entry points: [`core/spring-boot/src/main/java/org/springframework/boot`](https://github.com/spring-projects/spring-boot/tree/main/core/spring-boot/src/main/java/org/springframework/boot) (Spring Boot framework), [`core/spring-boot/src/main/java/org/springframework/boot/convert/ApplicationConversionService.java`](https://github.com/spring-projects/spring-boot/blob/main/core/spring-boot/src/main/java/org/springframework/boot/convert/ApplicationConversionService.java) (Application conversion), [`buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/DockerApi.java`](https://github.com/spring-projects/spring-boot/blob/main/buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/DockerApi.java) (Docker platform), [`build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImage.java`](https://github.com/spring-projects/spring-boot/blob/main/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImage.java) (Image building)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Application runtime"]
  node_springboot["Spring Boot framework"]
  node_conversion["Application conversion"]
end

subgraph group_extensions["Runtime capabilities"]
  node_autoconfigure["Auto-configuration"]
  node_web["Web support"]
  node_data["Data integrations"]
end

subgraph group_build["Build integrations"]
  node_cli["Spring CLI"]
  node_gradle["Gradle plugin"]
  node_maven["Maven plugin<br/>[RepackageMojo.java]"]
  node_archives["Executable archives<br/>[BootJar.java]"]
end

subgraph group_images["Container images"]
  node_imagebuild["Image building"]
  node_dockerplatform["Docker platform<br/>[DockerApi.java]"]
end

node_developer(("Application developer"))
node_docker["Docker engine"]

node_developer -->|"creates app"| node_springboot
node_developer -->|"runs scripts"| node_cli
node_springboot -->|"configures conversion"| node_conversion
node_conversion -.->|"supports configuration"| node_autoconfigure
node_springboot -->|"runs as JAR or WAR"| node_archives
node_imagebuild -.->|"uses Docker API"| node_dockerplatform
node_dockerplatform -.->|"communicates with"| node_docker

click node_springboot "https://github.com/spring-projects/spring-boot/tree/main/core/spring-boot/src/main/java/org/springframework/boot"
click node_conversion "https://github.com/spring-projects/spring-boot/blob/main/core/spring-boot/src/main/java/org/springframework/boot/convert/ApplicationConversionService.java"
click node_autoconfigure "https://github.com/spring-projects/spring-boot/tree/main/core/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure"
click node_web "https://github.com/spring-projects/spring-boot/blob/main/core/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/format/WebConversionService.java"
click node_data "https://github.com/spring-projects/spring-boot/blob/main/module/spring-boot-jpa/src/main/java/org/springframework/boot/jpa/EntityManagerFactoryBuilder.java"
click node_cli "https://github.com/spring-projects/spring-boot/blob/main/cli/spring-boot-cli/src/main/java/org/springframework/boot/cli/command/init/InitializrService.java"
click node_gradle "https://github.com/spring-projects/spring-boot/blob/main/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootPlugin.java"
click node_maven "https://github.com/spring-projects/spring-boot/blob/main/build-plugin/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RepackageMojo.java"
click node_archives "https://github.com/spring-projects/spring-boot/blob/main/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootJar.java"
click node_imagebuild "https://github.com/spring-projects/spring-boot/blob/main/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImage.java"
click node_dockerplatform "https://github.com/spring-projects/spring-boot/blob/main/buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/DockerApi.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_springboot,node_conversion toneBlue
class node_autoconfigure,node_web,node_data toneAmber
class node_cli,node_gradle,node_maven,node_archives toneMint
class node_imagebuild,node_dockerplatform toneRose
class node_developer,node_docker toneIndigo
```

## Components

### Application runtime

- [Spring Boot framework](https://github.com/spring-projects/spring-boot/tree/main/core/spring-boot/src/main/java/org/springframework/boot): `core/spring-boot/src/main/java/org/springframework/boot`
- [Application conversion](https://github.com/spring-projects/spring-boot/blob/main/core/spring-boot/src/main/java/org/springframework/boot/convert/ApplicationConversionService.java): `core/spring-boot/src/main/java/org/springframework/boot/convert/ApplicationConversionService.java`

### Runtime capabilities

- [Auto-configuration](https://github.com/spring-projects/spring-boot/tree/main/core/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure): `core/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure`
- [Web support](https://github.com/spring-projects/spring-boot/blob/main/core/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/format/WebConversionService.java): `core/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/format/WebConversionService.java`
- [Data integrations](https://github.com/spring-projects/spring-boot/blob/main/module/spring-boot-jpa/src/main/java/org/springframework/boot/jpa/EntityManagerFactoryBuilder.java): `module/spring-boot-jpa/src/main/java/org/springframework/boot/jpa/EntityManagerFactoryBuilder.java`

### Build integrations

- [Spring CLI](https://github.com/spring-projects/spring-boot/blob/main/cli/spring-boot-cli/src/main/java/org/springframework/boot/cli/command/init/InitializrService.java): `cli/spring-boot-cli/src/main/java/org/springframework/boot/cli/command/init/InitializrService.java`
- [Gradle plugin](https://github.com/spring-projects/spring-boot/blob/main/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootPlugin.java): `build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootPlugin.java`
- [Maven plugin](https://github.com/spring-projects/spring-boot/blob/main/build-plugin/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RepackageMojo.java): `build-plugin/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RepackageMojo.java`
- [Executable archives](https://github.com/spring-projects/spring-boot/blob/main/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootJar.java): `build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootJar.java`

### Container images

- [Image building](https://github.com/spring-projects/spring-boot/blob/main/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImage.java): `build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImage.java`
- [Docker platform](https://github.com/spring-projects/spring-boot/blob/main/buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/DockerApi.java): `buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/DockerApi.java`

### Other components

- **Application developer**
- **Docker engine**

## Connections

- Application developer → Spring Boot framework: creates app
- Application developer → Spring CLI: runs scripts
- Spring Boot framework → Application conversion: configures conversion (evidence: `core/spring-boot/src/main/java/org/springframework/boot/convert/ApplicationConversionService.java`)
- Application conversion → Auto-configuration: supports configuration
- Spring Boot framework → Executable archives: runs as JAR or WAR
- Image building → Docker platform: uses Docker API
- Docker platform → Docker engine: communicates with
