From backend-java
Use when implementing Spring Boot features — enforces patterns for REST controllers, service layer, JPA repositories, Spring Security, configuration, and dependency injection
How this skill is triggered — by the user, by Claude, or both
Slash command
/backend-java:java-frameworksThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
```java
@RestController
@RequestMapping("/api/v1/orders")
@RequiredArgsConstructor
public class OrderController {
private final OrderService orderService;
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public OrderResponse createOrder(@Valid @RequestBody CreateOrderRequest request) {
return orderService.create(request);
}
@GetMapping("/{id}")
public OrderResponse getOrder(@PathVariable Long id) {
return orderService.findById(id);
}
}
@RestController, not @Controller + @ResponseBody@RequiredArgsConstructor (Lombok) for constructor injection@Valid for request validation@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class OrderService {
private final OrderRepository orderRepository;
private final EventPublisher eventPublisher;
@Transactional
public OrderResponse create(CreateOrderRequest request) {
var order = Order.create(request.customerId(), request.items());
orderRepository.save(order);
eventPublisher.publish(new OrderCreatedEvent(order.getId()));
return OrderResponse.from(order);
}
}
@Transactional(readOnly = true) at class level, @Transactional on writespublic interface OrderRepository extends JpaRepository<Order, Long> {
List<Order> findByCustomerIdAndStatus(String customerId, OrderStatus status);
@Query("SELECT o FROM Order o WHERE o.createdAt > :since")
List<Order> findRecentOrders(@Param("since") LocalDateTime since);
}
@ConfigurationProperties for typed config, not @Valueapplication.yml, application-dev.yml, application-prod.yml@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(OrderNotFoundException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
public ProblemDetail handleNotFound(OrderNotFoundException ex) {
return ProblemDetail.forStatusAndDetail(HttpStatus.NOT_FOUND, ex.getMessage());
}
}
npx claudepluginhub gagandeepp/software-agent-teams --plugin backend-javaGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.