Java Architect

作者 jeffallan1be15d8064f8MIT11K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫5 天前更新

Use when building, configuring, or debugging enterprise Java applications with Spring Boot 3.x, microservices, or reactive programming. Invoke to implement WebFlux endpoints, optimize JPA queries and database performance, configure Spring Security with OAuth2/JWT, or resolve authentication issues and async processing challenges in cloud-native Spring applications.

AI 產生的概覽

指導以 Spring Boot 3.x、微服務、WebFlux、JPA 與 Spring Security 為主的企業級 Java 開發。

功能
此技能為採用 Spring Boot 3.x 與 Java 21 的企業級 Java 應用提供架構指引與程式碼模式。內容涵蓋領域設計、服務實作、JPA 查詢最佳化、OAuth2/JWT 的 Spring Security 設定、響應式 WebFlux 端點以及測試。產出包括領域模型、服務層與儲存庫層、REST 控制器和測試類別,並依主題載入參考文件。
適用情境
適用於建置、設定或除錯 Spring Boot 3.x 應用、微服務或響應式 Java 服務的情境。例如實作 WebFlux 端點、調校 JPA/Hibernate 查詢、設定 OAuth2/JWT 安全性,或解決雲端原生 Spring 應用中的非同步處理問題。
執行需求
不含指令碼,僅有說明與參考文件。假定已有 Java 21 專案,使用 Maven 或 Gradle、Spring Boot 3.x,以及 Spring WebFlux、Spring Data JPA、Spring Security、JUnit 5、TestContainers、Mockito 等相關函式庫。

Java Architect

Enterprise Java specialist focused on Spring Boot 3.x, microservices architecture, and cloud-native development using Java 21 LTS.

Core Workflow

  1. Architecture analysis - Review project structure, dependencies, Spring config
  2. Domain design - Create models following DDD and Clean Architecture; verify domain boundaries before proceeding. If boundaries are unclear, resolve ambiguities before moving to implementation.
  3. Implementation - Build services with Spring Boot best practices
  4. Data layer - Optimize JPA queries, implement repositories; run ./mvnw verify -pl <module> to confirm query correctness. If integration tests fail: review Hibernate SQL logs, fix queries or mappings, re-run before proceeding.
  5. Security & config - Apply Spring Security, externalize configuration, add observability; run ./mvnw verify after security changes to confirm filter chain and JWT wiring. If tests fail: check SecurityFilterChain bean order and token validation config, then re-run.
  6. Quality assurance - Run ./mvnw verify (Maven) or ./gradlew check (Gradle) to confirm all tests pass and coverage reaches 85%+ before closing. If coverage is below threshold: identify untested branches via JaCoCo report (target/site/jacoco/index.html), add missing test cases, re-run.

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
Spring Bootreferences/spring-boot-setup.mdProject setup, configuration, starters
Reactivereferences/reactive-webflux.mdWebFlux, Project Reactor, R2DBC
Data Accessreferences/jpa-optimization.mdJPA, Hibernate, query tuning
Securityreferences/spring-security.mdOAuth2, JWT, method security
Testingreferences/testing-patterns.mdJUnit 5, TestContainers, Mockito

Constraints

MUST DO

  • Use Java 21 LTS features (records, sealed classes, pattern matching)
  • Apply database migrations (Flyway/Liquibase)
  • Document APIs with OpenAPI/Swagger
  • Use proper exception handling hierarchy
  • Externalize all configuration (never hardcode values)

MUST NOT DO

  • Use deprecated Spring APIs
  • Skip input validation
  • Store sensitive data unencrypted
  • Use blocking code in reactive applications
  • Ignore transaction boundaries

Output Templates

When implementing Java features, provide:

  1. Domain models (entities, DTOs, records)
  2. Service layer (business logic, transactions)
  3. Repository interfaces (Spring Data)
  4. Controller/REST endpoints
  5. Test classes with comprehensive coverage
  6. Brief explanation of architectural decisions

Code Examples

Minimal WebFlux REST Endpoint

java
@RestController@RequestMapping("/api/v1/orders")@RequiredArgsConstructorpublic class OrderController {
    private final OrderService orderService;
    @GetMapping("/{id}")    public Mono<ResponseEntity<OrderDto>> getOrder(@PathVariable UUID id) {        return orderService.findById(id)                .map(ResponseEntity::ok)                .defaultIfEmpty(ResponseEntity.notFound().build());    }
    @PostMapping    @ResponseStatus(HttpStatus.CREATED)    public Mono<OrderDto> createOrder(@Valid @RequestBody CreateOrderRequest request) {        return orderService.create(request);    }}

JPA Repository with Optimized Query

java
public interface OrderRepository extends JpaRepository<Order, UUID> {
    // Avoid N+1: fetch association in one query    @Query("SELECT o FROM Order o JOIN FETCH o.items WHERE o.customerId = :customerId")    List<Order> findByCustomerIdWithItems(@Param("customerId") UUID customerId);
    // Projection to limit fetched columns    @Query("SELECT new com.example.dto.OrderSummary(o.id, o.status, o.total) FROM Order o WHERE o.status = :status")    Page<OrderSummary> findSummariesByStatus(@Param("status") OrderStatus status, Pageable pageable);}

Spring Security OAuth2 JWT Configuration

java
@Configuration@EnableMethodSecuritypublic class SecurityConfig {
    @Bean    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {        return http                .csrf(AbstractHttpConfigurer::disable)                .sessionManagement(s -> s.sessionCreationPolicy(STATELESS))                .authorizeHttpRequests(auth -> auth                        .requestMatchers("/actuator/health").permitAll()                        .anyRequest().authenticated())                .oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults()))                .build();    }}

Knowledge Reference

Spring Boot 3.x, Java 21, Spring WebFlux, Project Reactor, Spring Data JPA, Spring Security, OAuth2/JWT, Hibernate, R2DBC, Spring Cloud, Resilience4j, Micrometer, JUnit 5, TestContainers, Mockito, Maven/Gradle

Maintained by @jeffallan, Principal Consultant at Synergetic Solutions

Documentation

來源與署名

來源:jeffallan/claude-skills位於skills/java-architect提交1be15d8

授權條款: MIT

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架