spring-application-code-style

Enforce layered boundaries between controllers, services, and repositories in Spring Boot projects.

Updated Apr 18, 2026
One-click install
npx skills add https://github.com/rotilho/skills --skill spring-application-code-style
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: spring-application-code-style
Source: https://github.com/rotilho/skills/tree/main/spring-application-code-style
Command: npx skills add https://github.com/rotilho/skills --skill spring-application-code-style

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill provides Spring application structure and wiring guidance to keep controllers thin, separate business logic from HTTP concerns, and standardize package organization across Spring Boot projects, including WebFlux or coroutine-first services.

Core Features & Use Cases

  • Enforces clear boundaries between controllers, services, and repositories to improve testability and maintainability.
  • Promotes proper bean wiring and explicit configuration properties via dedicated configuration classes.
  • Guides transactional boundaries, eventing, scheduling, and basic observability within the application stack.
  • Use case: you want a consistent project structure that scales with features, keeps business logic out of HTTP layers, and supports coroutine-first or Flow usage in Spring-managed code.

Quick Start

Configure a Spring Boot project with a standard architecture (controllers thin, services orchestrating, repositories focused on persistence) and verify wiring and properties align with Spring best practices.

Frequently Asked Questions about spring-application-code-style

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a Spring Boot WebFlux application to keep controllers thin?

Standardize Spring application structure by enforcing explicit bean wiring and dedicated configuration classes for configuration properties. Use observable wiring and framework-aware defaults to keep Spring-managed code organized. This approach keeps business logic out of HTTP layers and supports scalable feature development.

Can I use coroutines and Flow in Spring Boot service layers?

Yes, you can use coroutine-first patterns and Flow usage in Spring-managed service code. The architecture guides transactional boundaries, eventing, and scheduling specifically within Spring Boot projects supporting WebFlux or coroutine-first services, ensuring reactive code aligns with standard layered boundaries.

What is the best way to organize Spring Boot packages for scalability?

The best way to organize Spring Boot packages is by applying layered boundaries with thin controllers, orchestrating services, and persistence-focused repositories. This structure scales with features, separates HTTP concerns from business logic, and standardizes package organization across the entire application stack.

Does this Spring code style guidance apply to standard Spring MVC or only WebFlux?

This guidance applies to Spring Boot projects requiring WebFlux, coroutine-first patterns, configuration properties, transactions, or integration testing. It implements framework-aware defaults and checks while avoiding generic Kotlin-only guidance, ensuring compatibility with reactive Spring architectures.