Create Spring Boot projects with Java 25 and Spring Boot 4. Use when user wants to create, build, scaffold, setup, or initialize a new Spring Boot application, microservice, REST API, or backend service; asks for project structure recommendations; mentions Java 25 or Spring Boot 4 features (RestTestClient, HTTP Service Clients, API versioning, JSpecify null-safety, modularization); needs architecture guidance (layered, package-by-module, modular monolith, tomato, DDD+hexagonal); or requests Spring Initializr setup. Also triggers on discussions about Spring Boot architecture patterns, Value Objects, CQRS, or domain-driven design.
Use this skill to create new Spring Boot 4 projects or define their structure before implementation. The skill adds value when the user needs an architecture decision, Spring Boot 4 feature selection, or the bundled templates in assets/.
assets/ instead of rewriting the same scaffolding from scratch.Collect the project constraints first:
Use this matrix as the default decision aid. If the choice is not obvious, read references/architecture-guide.md before proceeding.
| Pattern | Use when | Complexity |
|---------|----------|------------|
| layered | CRUD services, prototypes, MVPs | Low |
| package-by-module | 3-5 distinct features with moderate growth | Low-Medium |
| modular-monolith | Module boundaries matter and Spring Modulith is justified | Medium |
| tomato | Rich domain modeling, value objects, stronger type safety | Medium-High |
| ddd-hexagonal | Complex domains, CQRS, strong infrastructure isolation | High |
tomatois a value-object-heavy modular monolith: JPA entities embed VOs, validation lives in VO constructors, and Spring converters bind VOs at the request boundary. Seereferences/architecture-guide.mdfor the full definition.
Use Spring Initializr and capture the baseline:
Baseline dependencies for most projects:
Optional dependencies based on architecture or features:
Read references/spring-boot-4-features.md before selecting:
Use the bundled templates from assets/ and replace placeholders only after the package and module names are settled.
Every template uses {{TOKEN}} placeholders. Resolve all of them before applying — templates do not compile until every placeholder is replaced. The full set used across assets/:
| Placeholder | Replace with | Example |
|-------------|--------------|---------|
| {{PACKAGE}} | Base Java package | com.acme.shop |
| {{MODULE}} | Feature/module name (lowercase) | orders |
| {{NAME}} | Domain type name (PascalCase) | Order, ProductSKU |
| {{TYPE}} | Wrapped scalar type inside a value object | String, Long, BigDecimal |
| {{FIELD}} | Record field name (camelCase) | code, amount |
| {{TABLE_NAME}} | Database table name (used in JPA @Table) | orders |
| {{TABLE}} | Same meaning as {{TABLE_NAME}} — legacy variant kept only in flyway-migration.sql | orders |
| {{PROJECT_NAME}} | Project artifactId / docker prefix (used only in docker-compose.yml) | shop-api |
| {{name}} | HTTP service group identifier — not a lowercase variant of {{NAME}}. Appears only in commented @ImportHttpServices(group = "...") examples. | orders |
If a template uses a placeholder not listed here, treat it as a typo and confirm the intended value before applying.
Core project templates:
assets/controller.javaassets/repository.javaassets/base-entity.javaassets/rich-entity.javaassets/value-object.javaassets/spring-converter.javaassets/service-cqrs.javaassets/exception-handler.javaassets/flyway-migration.sqlassets/docker-compose.ymlBoot 4 and modularity templates:
assets/http-service-client.javaassets/api-versioning-config.javaassets/resttestclient-test.javaassets/package-info-jspecify.javaassets/modularity-test.javaassets/resilience-service.javaassets/pom-additions.xmlassets/testcontainers-test.javaRead references/architecture-guide.md for package structure and apply the matching templates:
layered: keep modules simple and avoid premature DDD abstractionspackage-by-module: group by feature and keep shared code minimalmodular-monolith: add Modulith verification and explicit module APIstomato: add value objects and rich domain entities where they protect important invariantsddd-hexagonal: separate application, domain, and infrastructure explicitlyspring-data-jpa when the user needs deeper query, projection, repository, or relationship decisions.springboot-migration for upgrades of existing applications rather than new-project setup.references/architecture-guide.mdreferences/spring-boot-4-features.mdWhen the user asks for a plan or scaffold recommendation, return:
## Recommended architecture
- Pattern:
- Why:
## Initial setup
- Build tool:
- Java version:
- Spring Boot version:
- Core dependencies:
## Assets to apply
- `assets/...`
## Next implementation steps
1. ...
2. ...
3. ...
npx skills add a-pavithraa/创建-Spring-Boot-项目下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer