Skip to content
alyn
Gentleman-Programming

Spring Boot 3 skill

Spring Boot 3 patterns for configuration, DI, and web services. Trigger: When building or refactoring Spring Boot 3 applications.

$npx skills add Gentleman-Programming/Gentleman-Skills --skill spring-boot-3
View this skill on GitHubGentleman-Programming/Gentleman-Skills/community/spring-boot-3/SKILL.md
Pack stars
665
Pack installs
5.6k
Alyn Score
42/99
Updated
8 months ago
License
MIT
– views – installs via Alyn

Gentleman-Programming

Spring Boot 3

Install Spring Boot 3

Pick your agent. Every command is ready to paste.

$npx skills add Gentleman-Programming/Gentleman-Skills --skill spring-boot-3

The open skills CLI detects your agents (Claude Code, Cursor, Codex and 70+ more) and installs to the right folder. Add -g to install globally.

01

Install it

Run the command above, or upload the folder in Claude.

02

Ask naturally

Describe the task. Your agent loads spring-boot-3 when the request matches its description.

03

Name it if needed

If it does not trigger, say “use the spring-boot-3 skill”. In Codex, type $spring-boot-3.

The skill itself

SKILL.md

FolderGitHub

When to Use

Load this skill when:

  • Building a Spring Boot 3.3+ service or API
  • Wiring beans with dependency injection
  • Defining configuration properties and validation
  • Implementing REST controllers and service layers

Critical Patterns

Pattern 1: Constructor injection only

Always use constructor injection; avoid field injection.

Pattern 2: Typed configuration properties

Use @ConfigurationProperties with validation, not scattered @Value.

Pattern 3: Transaction boundaries at service layer

Apply @Transactional on application services, not controllers.

Code Examples

Example 1: Configuration properties with validation

package com.acme.config;

import jakarta.validation.constraints.NotBlank;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;

@Validated
@ConfigurationProperties(prefix = "payment")
public record PaymentProperties(
  @NotBlank String provider,
  @NotBlank String apiKey
) { }
package com.acme;

import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@ConfigurationPropertiesScan
public class Application { }

Example 2: Service with constructor injection + transaction

package com.acme.order.application;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public final class OrderService {
  private final OrderRepository repository;

  public OrderService(OrderRepository repository) {
    this.repository = repository;
  }

  @Transactional
  public void placeOrder(OrderCommand command) {
    repository.save(command.toEntity());
  }
}

Example 3: REST controller with DTO records

package com.acme.order.api;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/orders")
public final class OrderController {
  private final OrderService service;

  public OrderController(OrderService service) {
    this.service = service;
  }

  @PostMapping
  public ResponseEntity<OrderResponse> place(@RequestBody OrderRequest request) {
    service.placeOrder(request.toCommand());
    return ResponseEntity.ok(new OrderResponse("ok"));
  }

  public record OrderRequest(String sku, int qty) {
    public OrderCommand toCommand() { return new OrderCommand(sku, qty); }
  }

  public record OrderResponse(String status) { }
}

Anti-Patterns

Don't: Use field injection

// BAD: field injection
@Service
public class OrderService {
  @org.springframework.beans.factory.annotation.Autowired
  private OrderRepository repository;
}

Don't: Scatter configuration with @Value

// BAD: hard to validate and test
@Service
public class PaymentService {
  @org.springframework.beans.factory.annotation.Value("${payment.apiKey}")
  private String apiKey;
}

Quick Reference

Task Pattern
Inject dependencies Constructor injection only
Read config @ConfigurationProperties + @Validated
Transactions @Transactional on services

Resources

Tips for Spring Boot 3

  • • Start a fresh session after installing so your agent picks up the new skill.
  • • It is part of a pack with 24 skills. Install only the ones you need with --skill to keep triggers precise.
  • • If two skills overlap, mention the one you want by name.

Questions about Spring Boot 3

What does the Spring Boot 3 skill do?

Spring Boot 3 patterns for configuration, DI, and web services. Trigger: When building or refactoring Spring Boot 3 applications.

How do I install Spring Boot 3?

Run "npx skills add Gentleman-Programming/Gentleman-Skills --skill spring-boot-3" in your project. The skills CLI installs it for Claude Code, Cursor, Codex and 70+ other agents. In Claude on the web, upload the skill folder as a ZIP under Customize > Skills.

Does Spring Boot 3 work in Cursor and Codex?

Yes. Spring Boot 3 uses the open SKILL.md format, so it works in Claude Code, Claude, Cursor, OpenAI Codex, Gemini CLI, GitHub Copilot and other agents that support agent skills.

Is Spring Boot 3 free?

Spring Boot 3 is open source on GitHub under the MIT license. It is free to install; check the license before commercial use.

Who made Spring Boot 3?

Spring Boot 3 is published by Gentleman-Programming in the Gentleman-Programming/Gentleman-Skills repository, together with 23 other skills.

Similar skills. From other creators.