$ account spring-guides
This repository is the official Spring Boot getting started guide (gs-spring-boot). It provides a minimal web application that demonstrates Spring Boot's auto-configuration, embedded Tomcat, and actuator endpoints. The codebase consists of a single REST controller returning a static greeting string, a Spring Boot application class with a CommandLineRunner that lists all beans, and corresponding unit and integration tests. The complete variant includes Spring Boot Actuator for production-ready features. The repo serves purely as a tutorial scaffold, not a production-grade application. The architecture is a trivial monolith with no external services, database, or complex data flow. All source files are framework boilerplate generated or inspired by Spring Initializr. There are no reusable components or non-obvious patterns. The value lies in its documentation and as a starting point for learning Spring Boot. Despite its simplicity, the repository is actively maintained with up-to-date dependencies (Spring Boot 4.0.x, Kotlin 2.2.x, Gradle 9.3.x) and CI pipelines. It includes both Java and Kotlin implementations, and both Maven and Gradle build systems.
This is a monolithic Spring Boot web application built with Kotlin that implements a blog engine. The application serves both HTML pages via Mustache templates and provides a REST API for articles and users. It uses Spring Data JDBC for data access with an H2 database, and includes sample data initialization. The architecture follows standard Spring MVC patterns with controllers handling web and API requests, repositories for data access, and configuration properties for externalized settings. The code demonstrates idiomatic Kotlin usage with extension functions, data classes, and proper null safety.
This repository is a Spring Guide tutorial demonstrating how to build a Spring Boot web application that accepts HTTP multipart file uploads. It contains four project variants: initial and complete versions in both Java and Kotlin, each with Maven and Gradle build files. The complete version adds a FileUploadController with endpoints for listing uploaded files, serving them as downloads, and handling uploads, plus a StorageService abstraction backed by a FileSystemStorageService that writes files to a configurable local directory (default 'upload-dir'). A Thymeleaf template provides a simple HTML upload form. The application is a small monolith: Spring MVC controllers handle GET / (list files), POST / (store uploaded file), and GET /files/{filename} (download with Content-Disposition). The storage layer uses java.nio.file APIs and includes a path traversal protection check that rejects filenames escaping the root directory. Upload size limits are configured via spring.servlet.multipart properties. Tests cover controller behavior with MockMvc, storage service security cases, and full integration tests using RestTestClient with redirect handling. This is educational sample code, not a production service. It demonstrates clean separation between web layer and storage abstraction, and the complete version includes meaningful security and testing patterns that can be reused in real projects. The code is actively maintained, uses current Spring Boot 4.0.x and Java 17, and is well-suited as a reference for implementing file upload endpoints.