awesome-copilot/instructions/springboot.instructions_ja.md

59 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description: 'Spring Bootベースアプリケーション構築のためのガイドライン'
applyTo: '**/*.java, **/*.kt'
---
# Spring Boot開発
## 一般指針
- コードレビューの際は、高い信頼性を持つ提案のみを行う。
- 設計上の決定の理由についてコメントを含む、良好な保守性プラクティスでコードを作成する。
- エッジケースを処理し、明確な例外処理を書く。
- ライブラリや外部依存関係については、その使用方法と目的をコメントで言及する。
## Spring Boot指針
### 依存性注入
- すべての必要な依存関係にコンストラクタ注入を使用する。
- 依存関係フィールドを`private final`として宣言する。
### 設定
- 外部化された設定にはYAMLファイル`application.yml`)を使用する。
- 環境プロファイル異なる環境dev、test、prodにSpringプロファイルを使用する
- 設定プロパティ:型安全な設定バインディングに@ConfigurationPropertiesを使用する
- シークレット管理:環境変数やシークレット管理システムを使用してシークレットを外部化する
### コード構成
- パッケージ構造:レイヤーではなく機能/ドメインごとに整理する
- 関心の分離:コントローラーは薄く、サービスは集中的に、リポジトリはシンプルに保つ
- ユーティリティクラス:ユーティリティクラスは`private`コンストラクタでfinalにする
### サービス層
- ビジネスロジックは`@Service`注釈付きクラスに配置する。
- サービスはステートレスでテスト可能であるべきです。
- コンストラクタ経由でリポジトリを注入する。
- サービスメソッドシグネチャはドメインIDやDTOを使用し、必要でない限りリポジトリエンティティを直接公開しない。
### ロギング
- すべてのロギングにSLF4Jを使用する`private static final Logger logger = LoggerFactory.getLogger(MyClass.class);`)。
- 具体的な実装Logback、Log4j2`System.out.println()`を直接使用しない。
- パラメータ化されたロギングを使用する:`logger.info("User {} logged in", userId);`
### セキュリティ & 入力処理
- パラメータ化クエリを使用する | SQLインジェクションを防ぐため、常にSpring Data JPAまたは`NamedParameterJdbcTemplate`を使用する。
- JSR-380`@NotNull``@Size`など)注釈と`BindingResult`を使用してリクエストボディとパラメータを検証する
## ビルドと検証
- コードを追加または変更した後、プロジェクトが正常にビルドし続けることを確認する。
- プロジェクトでMavenを使用している場合は、`mvn clean install`を実行する。
- プロジェクトでGradleを使用している場合は、`./gradlew build`WindowsでS`gradlew.bat build`)を実行する。
- ビルドの一部としてすべてのテストが成功することを確認する。