Expert guidance for working with a multi-module Maven Spring Boot project featuring both traditional (MVC/JPA) and reactive (WebFlux/R2DBC) implementations with performance testing infrastructure.
This skill provides expert guidance for working with a multi-module Maven Spring Boot project that demonstrates different application implementations with performance testing capabilities.
This skill helps you navigate and work with a Spring Boot project that includes:
The project consists of:
Both main modules share the same API design and database schema but use different technology stacks.
When working with this codebase, follow these guidelines:
- `controller/`: REST API endpoints
- `service/`: Business logic
- `repository/`: Data access (JPA vs R2DBC)
- `entity/`: Database entities
- `dto/`: API data transfer objects
- `config/`: Configuration classes
**Build commands:**
```bash
mvn clean package
mvn clean package -pl sample-web
mvn clean package -pl sample-webflux
```
**Start infrastructure:**
```bash
docker-compose up -d
```
**Run applications:**
```bash
mvn spring-boot:run -pl sample-web
mvn spring-boot:run -pl sample-webflux
```
**Unit/Integration tests:**
```bash
mvn test
mvn test -pl sample-web
mvn test -pl sample-webflux
```
**Performance testing:**
- `backend/`: PostgreSQL + WireMock
- `web-platform-thread/`: Platform thread configuration
- `web-virtual-thread/`: Virtual thread configuration (Java 21+)
- `webflux/`: Reactive configuration
**TODO Feature** (both modules):
**EC Feature** (sample-web only):
**PostgreSQL:**
**WireMock:**
When adding or modifying features:
Both modules use Java 24 as specified in POM files. Ensure compatibility when adding dependencies or language features.
**Adding a new feature:**
1. Create package under `com.example.sample.web.{feature}` and `com.example.sample.webflux.{feature}`
2. Implement controller, service, repository, entity, and DTOs in each module
3. Use JPA/RestClient in sample-web, R2DBC/WebClient in sample-webflux
4. Add corresponding tests
5. Update CLAUDE.md if introducing new patterns
**Running performance comparison:**
1. Start backend: `cd performance/backend && docker-compose up -d`
2. Start target implementation (e.g., `cd performance/web-platform-thread && docker-compose up -d`)
3. Run K6 tests from `performance/` directory
4. Compare results across different configurations
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/spring-boot-multi-module-assistant/raw