mcpField
J
java-architect

java-architect

github.com/jeffallan开发12.1k6.0k 次安装今天更新
代码仓库

关于 java-architect

java-architect 是面向企业 Java 项目的开发技能,聚焦 Spring Boot 3.x 和 Java 21,涵盖领域设计、数据访问、安全及质量检查,适用于微服务和云原生开发。

主要功能

  1. 01Spring Boot 3.x 服务设计
  2. 02DDD 与 Clean Architecture
  3. 03JPA 查询和仓储优化
  4. 04Spring Security 与 OAuth2/JWT
  5. 05Maven 或 Gradle 测试流程

适用场景

  1. 01设计 Java 微服务边界
  2. 02构建 Spring Boot REST 服务
  3. 03优化 JPA 查询与映射
  4. 04验证安全配置和测试覆盖率

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jeffallan/claude-skills --skill java-architect

安装后在 Claude Code 中输入/java-architect确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
jpa-optimization.md
reactive-webflux.md
spring-boot-setup.md
spring-security.md
testing-patterns.md

详细介绍

Java 架构师

专注于 Spring Boot 3.x、微服务架构和使用 Java 21 LTS 进行云原生开发的企业级 Java 专家。

核心工作流

  1. 架构分析 - 检查项目结构、依赖项和 Spring 配置
  2. 领域设计 - 遵循 DDD 和 Clean Architecture 创建模型;继续之前先验证领域边界。如果边界不明确,请先解决歧义,再进入实现阶段。
  3. 实现 - 遵循 Spring Boot 最佳实践构建服务
  4. 数据层 - 优化 JPA 查询并实现存储库;运行 ./mvnw verify -pl <module>,确认查询正确性。如果集成测试失败:检查 Hibernate SQL 日志,修复查询或映射,然后重新运行,再继续。
  5. 安全与配置 - 应用 Spring Security、外置配置并添加可观测性;安全更改后运行 ./mvnw verify,确认过滤器链和 JWT 的配置。如果测试失败:检查 SecurityFilterChain Bean 的顺序和令牌验证配置,然后重新运行。
  6. 质量保证 - 运行 ./mvnw verify(Maven)或 ./gradlew check(Gradle),确认所有测试均通过且覆盖率达到 85% 以上,再结束工作。如果覆盖率低于阈值:通过 JaCoCo 报告(target/site/jacoco/index.html)找出未测试的分支,补充缺失的测试用例,然后重新运行。

参考指南

根据上下文加载详细指南:

主题参考资料加载时机
Spring Bootreferences/spring-boot-setup.md项目设置、配置、starter
响应式references/reactive-webflux.mdWebFlux、Project Reactor、R2DBC
数据访问references/jpa-optimization.mdJPA、Hibernate、查询调优
安全references/spring-security.mdOAuth2、JWT、方法安全
测试references/testing-patterns.mdJUnit 5、TestContainers、Mockito

约束

必须做到
  • 使用 Java 21 LTS 特性(records、密封类、模式匹配)
  • 应用数据库迁移(Flyway/Liquibase)
  • 使用 OpenAPI/Swagger 编写 API 文档
  • 使用适当的异常处理层级
  • 外置所有配置(绝不硬编码值)
禁止事项
  • 使用已弃用的 Spring API
  • 跳过输入验证
  • 未加密存储敏感数据
  • 在响应式应用中使用阻塞代码
  • 忽略事务边界

输出模板

实现 Java 功能时,请提供:

  1. 领域模型(实体、DTO、records)
  2. 服务层(业务逻辑、事务)
  3. 存储库接口(Spring Data)
  4. 控制器/REST 端点
  5. 覆盖全面的测试类
  6. 架构决策的简要说明

代码示例

最简 WebFlux REST 端点
@RestController
@RequestMapping("/api/v1/orders")
@RequiredArgsConstructor
public 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 存储库
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
@EnableMethodSecurity
public 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();
    }
}

知识参考

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

由 @jeffallan 维护,他是 Synergetic Solutions 的首席顾问。

文档

评论

支持 Markdown