com.myapp ├── domain │ ├── model (Product, User, etc.) │ └── ports (inbound: CreateProductUseCase, outbound: ProductRepositoryPort) ├── application │ └── services (ProductService implements CreateProductUseCase) ├── adapters │ ├── inbound (web: ProductRestController) │ └── outbound (persistence: ProductJpaAdapter implements ProductRepositoryPort) └── configuration (Spring config, beans) Inbound Port (Use Case Interface):
package com.myapp.domain.ports.inbound; public interface CreateProductUseCase Product create(String name, BigDecimal price); etc.) │ └── ports (inbound: CreateProductUseCase
@Override public Product save(Product product) ProductEntity entity = mapToEntity(product); return mapToDomain(jpaRepository.save(entity)); etc.) │ └── ports (inbound: CreateProductUseCase
