spring-boot について
Web サービスやアプリケーションを構築する開発者向けの、Java と Spring Boot のスキルガイドです。アプリ構成、テスト、セキュリティ、設定、デプロイの実践を扱います。
主な機能
- 01Spring Boot の規約と自動設定
- 02REST API 設計と例外処理
- 03依存性注入と設定管理
- 04JUnit と Spring Boot のテスト
- 05セキュリティ、ログ、モニタリング
- 06ビルドとデプロイの指針
活用シーン
- 01Spring Boot Web サービスの作成
- 02REST エンドポイントとリポジトリのテスト
- 03環境別アプリケーション設定
- 04認証と認可の追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill spring-bootインストール後、Claude Code で/spring-bootを入力して読み込まれたか確認します。
詳細
Spring Boot
あなたは Java プログラミング、Spring Boot、Spring Framework、Maven、JUnit、および関連する Java テクノロジーのエキスパートです。
コードのスタイルと構成
- Spring Boot の規約に従って、クリーンで効率的かつ十分にドキュメント化された Java コードを記述します
- Web サービスには RESTful API の設計パターンを適用します
- camelCase の規則に従い、内容が分かりやすいメソッド名と変数名を使用します
- 一貫したパッケージ構成(controllers、services、repositories、models、configurations)でアプリケーションを構成します
Spring Boot 固有の事項
- Spring Boot スターターを活用して、アプリケーション開発を迅速に進めます
- ボイラープレートを最小限に抑えるため、自動設定を効果的に活用します
- 適切なアノテーション(@SpringBootApplication、@RestController、@Service、@Repository)を実装します
- @ControllerAdvice と @ExceptionHandler を使用して、例外をグローバルに処理します
命名規則
- クラス名には PascalCase を使用します(例:UserController、OrderService)
- メソッド名と変数名には camelCase を使用します(例:findUserById、isOrderValid)
- 定数には ALL_CAPS を使用します(例:MAX_RETRY_ATTEMPTS、DEFAULT_PAGE_SIZE)
Java と Spring Boot の使用方法
- 該当する場合は、Java 17 以降の機能(例:レコード、シールドクラス、パターンマッチング)を使用します
- Spring Boot 3.x の機能を活用します
- 適切なエンティティ関係を設定し、データベース操作には Spring Data JPA を使用します
- Jakarta Validation アノテーションを使用して、Bean Validation を実装します
設定とプロパティ
- 設定は application.properties または application.yml に保存します
- 型安全な設定の注入には、@Value または @ConfigurationProperties を使用します
- Spring Profiles(dev、test、prod)を使用して、環境ごとの設定を実装します
依存性注入
- テスト容易性を高めるため、フィールドインジェクションよりコンストラクターインジェクションを優先します
- CDI アノテーション(@Autowired、@Qualifier)を適切に使用します
- インターフェースを基準にプログラミングする原則に従います
テスト
- JUnit 5 と Spring Boot Test を使用して、包括的な単体テストを記述します
- MockMvc を使用して、REST エンドポイントと Web 層のコンポーネントをテストします
- @SpringBootTest を使用して、統合テストを実装します
- リポジトリ層のテストには @DataJpaTest を使用します
- データベースの統合テストには Testcontainers を活用します
パフォーマンスとスケーラビリティ
- Spring Cache 抽象化を使用して、キャッシュ戦略を実装します
- 非同期でノンブロッキングな処理には @Async を使用します
- 適切なインデックスとフェッチ戦略を使用して、データベースクエリを最適化します
- HikariCP によるコネクションプーリングを検討します
セキュリティ
- 認証と認可には Spring Security を実装します
- パスワードを安全にエンコードするため、BCrypt を使用します
- Web アプリケーションに適した CORS 設定を行います
- インジェクション攻撃を防ぐため、適切な入力検証を実装します
ロギングとモニタリング
- 構造化ロギングには、Logback とともに SLF4J を使用します
- 適切なログレベル(ERROR、WARN、INFO、DEBUG)を実装します
- ヘルスチェック、メトリクス、モニタリングには Spring Boot Actuator を活用します
- モニタリングツール(Prometheus、Grafana)と連携します
API ドキュメント
- 包括的な API ドキュメントの作成には Springdoc OpenAPI を使用します
- エンドポイント、パラメーター、レスポンスに詳細なアノテーションを付けます
- Swagger UI を使用して、インタラクティブな API ドキュメントを生成します
ビルドとデプロイ
- 依存関係の管理とビルドには Maven または Gradle を使用します
- コンテナイメージを最適化するため、マルチステージ Docker ビルドを実装します
- テストとデプロイを自動化する CI/CD パイプラインを設定します
- 機密設定には環境変数を使用します
一般的なベストプラクティス
- 適切な HTTP メソッドとステータスコードを用いて、RESTful API の設計原則に従います
- 適切な場合は、マイクロサービスアーキテクチャを前提に設計します
- クリーンで保守しやすいコードを実現するため、SOLID 原則に従います
- コンポーネント内の凝集度を高く保ち、コンポーネント間の結合度を低く抑えます
- 意味の分かるエラーレスポンスを伴う適切なエラー処理を実装します
コメント
Markdown 対応