Marketplace

spring-boot-package-structure-creator

Creates recommended package structure for Spring Boot projects.

$ Installieren

git clone https://github.com/sivaprasadreddy/sivalabs-marketplace /tmp/sivalabs-marketplace && cp -r /tmp/sivalabs-marketplace/plugins/spring-boot-dev/skills/spring-boot-package-structure-creator ~/.claude/skills/sivalabs-marketplace

// tip: Run this command in your terminal to install the skill


name: spring-boot-package-structure-creator description: Creates recommended package structure for Spring Boot projects.

Spring Boot Package Structure Creator

Instructions

Follow a domain-driven, modular architecture where packages are organized by business modules rather than technical layers.

Recommended Example Package Structure

dev.sivalabs.meetup4j/
├── Application                      # Main Spring Boot entrypoint class
├── shared/                          # Cross-cutting concerns
│   ├── BaseEntity.java
│   ├── DomainException.java
│   ├── ResourceNotFoundException.java
│   └── SpringEventPublisher.java
│
├── events/                          # Events module (bounded context)
│   ├── domain/                      # Domain logic
│   │   ├── models/                  # ViewModels for read operations
│   │   │   └── EventVM.java
│   │   ├── vo/                      # Value Objects
│   │   │   ├── EventId.java
│   │   │   ├── EventCode.java
│   │   │   ├── EventDetails.java
│   │   │   ├── Schedule.java
│   │   │   ├── TicketPrice.java
│   │   │   ├── Capacity.java
│   │   │   └── EventLocation.java
│   │   ├── events/                  # Domain events
│   │   │   ├── EventCreated.java
│   │   │   ├── EventPublished.java
│   │   │   └── EventCancelled.java
│   │   ├── EventEntity.java         # Aggregate root
│   │   ├── EventRepository.java     # Repository interface
│   │   ├── EventService.java        # Write operations
│   │   ├── EventQueryService.java   # Read operations
│   │   ├── EventMapper.java         # Domain to ViewModel mapper
│   │   ├── CreateEventCmd.java      # Command
│   │   ├── PublishEventCmd.java
│   │   └── InvalidEventCreationException.java
│   ├── rest/                        # REST API layer
│   │   ├── converters/              # Type converters
│   │   │   └── StringToEventCodeConverter.java
│   │   ├── EventsController.java
│   │   ├── CreateEventRequest.java  # HTTP Request DTO
│   │   └── CreateEventResponse.java # HTTP Response DTO
│   └── EventsAPI.java               # Module's public API (facade)
│
├── registrations/                   # Registrations module
│   ├── domain/
│   │   ├── vo/
│   │   │   ├── RegistrationId.java
│   │   │   ├── RegistrationCode.java
│   │   │   └── Email.java
│   │   ├── EventRegistrationEntity.java
│   │   ├── RegistrationRepository.java
│   │   ├── EventRegistrationService.java
│   │   ├── EventRegistrationQueryService.java
│   │   └── RegisterAttendeeCmd.java
│   └── rest/
│       ├── converters/
│       ├── EventRegistrationController.java
│       └── EventRegistrationRequest.java
│
└── config/
    └── GlobalExceptionHandler.java

Naming Conventions

TypeConventionExample
Entities*EntityEventEntity, EventRegistrationEntity
Value ObjectsDomain name (record)Email, EventCode, EventId
Commands*CmdCreateEventCmd, PublishEventCmd
Command Response*ResultLoginResult, RegistrationResult
ViewModels*VMEventVM, RegistrationVM
HTTP Request*RequestCreateEventRequest, EventRegistrationRequest
HTTP Response*ResponseCreateEventResponse, EventRegistrationResponse
Repositories*RepositoryEventRepository, RegistrationRepository
Services (Write)*ServiceEventService, EventRegistrationService
Services (Read)*QueryServiceEventQueryService, EventRegistrationQueryService
Domain Exceptions*ExceptionInvalidEventCreationException, EventCancellationException
Module API*APIEventsAPI

Repository

sivaprasadreddy
sivaprasadreddy
Author
sivaprasadreddy/sivalabs-marketplace/plugins/spring-boot-dev/skills/spring-boot-package-structure-creator
32
Stars
2
Forks
Updated5d ago
Added1w ago