awesome-copilot/instructions/springboot.instructions_ja.md

3.1 KiB
Raw Blame History

description applyTo
Spring Bootベースアプリケーション構築のためのガイドライン **/*.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、Log4j2System.out.println()を直接使用しない。
  • パラメータ化されたロギングを使用する:logger.info("User {} logged in", userId);

セキュリティ & 入力処理

  • パラメータ化クエリを使用する | SQLインジェクションを防ぐため、常にSpring Data JPAまたはNamedParameterJdbcTemplateを使用する。
  • JSR-380@NotNull@Sizeなど)注釈とBindingResultを使用してリクエストボディとパラメータを検証する

ビルドと検証

  • コードを追加または変更した後、プロジェクトが正常にビルドし続けることを確認する。
  • プロジェクトでMavenを使用している場合は、mvn clean installを実行する。
  • プロジェクトでGradleを使用している場合は、./gradlew buildWindowsでSgradlew.bat build)を実行する。
  • ビルドの一部としてすべてのテストが成功することを確認する。