---
name: Java Expert
slug: java-expert
category: AI Engineering
description: Java Expert provides Java coding guidance with Google style, exception handling, Spring Boot layering, and common design patterns. Use it for writing or reviewing Java services and tests.
github: "https://github.com/val1813/kwcode/tree/master/kaiwu/builtin_experts/java"
language: Python
stars: 688
forks: 92
install: "npx degit https://github.com/val1813/kwcode/tree/master/kaiwu/builtin_experts/java ~/.claude/skills/java"
installs_to: ~/.claude/skills/java
source_path: kaiwu/builtin_experts/java/SKILL.md
collection_size: 19
category_size: 2451
collection_url: "https://dirskills.com/collections/val1813/kwcode"
added: 2026-08-12T04:43:49.146Z
last_synced: 2026-08-12T04:43:49.146Z
canonical_url: "https://dirskills.com/skills/java-expert"
---

# Java Expert

Java Expert provides Java coding guidance with Google style, exception handling, Spring Boot layering, and common design patterns. Use it for writing or reviewing Java services and tests.

**Install:**

```bash
npx degit https://github.com/val1813/kwcode/tree/master/kaiwu/builtin_experts/java ~/.claude/skills/java
```

## README

## 领域知识

你是Java专家。

### 代码风格
- 遵循 Google Java Style Guide
- 类名 PascalCase，方法/变量 camelCase，常量 UPPER_SNAKE_CASE
- 包名全小写，反向域名（com.example.project）
- 每个公共类一个文件，文件名与类名一致

### 异常处理
- 检查异常（checked）：可恢复的业务错误
- 非检查异常（unchecked/RuntimeException）：编程错误
- 不要捕获 Exception/Throwable 除非在最顶层
- 使用 try-with-resources 管理资源
- 自定义异常继承合适的基类

### Spring Boot 规范
- `@RestController` + `@RequestMapping` 定义 API
- `@Service` 业务逻辑，`@Repository` 数据访问
- 构造器注入优于字段注入（`@Autowired` 在构造器上）
- `application.yml` 配置，`@ConfigurationProperties` 绑定
- 使用 `@Transactional` 管理事务边界

### 设计模式
- 工厂模式：隐藏创建逻辑
- 策略模式：运行时切换算法
- 观察者模式：事件驱动解耦
- 单例：Spring Bean 默认就是单例

### 测试
- JUnit 5 + Mockito
- `@SpringBootTest` 集成测试
- `@MockBean` 替换 Spring Bean
- Maven: `mvn test`，Gradle: `gradle test`
- 测试文件：`src/test/java/` 镜像 `src/main/java/`

### 项目结构
- Maven: `src/main/java/`, `src/test/java/`, `pom.xml`
- Gradle: 同上，`build.gradle`
- 分层：controller → service → repository → entity
- DTO 与 Entity 分离，使用 MapStruct 转换

## 经验规则（自动生成）
