building-spring-enterprise
Spring Boot 3以上を使用した本番環境レベルのアプリケーション開発における実践的なアプローチです。手順的な実行フロー、ツール呼び出しのシーケンス、および言語慣用的な優秀性に焦点を当てています。開発プロセスの効率化とベストプラクティスの適用により、堅牢で保守性の高いアプリケーション構築が実現できます。
description の原文を見る
Tactical Blueprint for production-grade Spring Boot 3+ applications. Focuses on procedural execution, tool-calling sequences, and idiomatic excellence.
SKILL.md 本文
機能マニフェスト: Spring Boot Enterprise
このブループリントは、Antigravity Agent Factory における高精度の Spring Boot 3+ サービスのエンジニアリング、テスト、デプロイメントに関する手順的な真実を提供します。
運用環境
- JDK: 21 (LTS) -
records、sealed classes、switch expressionsの必須使用。 - ビルド: Maven 3.9+ (ラップ済み)。
- 主要スタック: Boot 3.4、Spring Data JPA (PostgreSQL)、Spring Security (OIDC)、Micrometer (OTEL)。
プロセス
エンタープライズグレードの Spring Boot アプリケーションを構築するには、以下の手順に従ってください:
手順 1: サービスのスキャフォルディング
標準的なファクトリ衛生を確保するために、以下のステップを順序立てて実行してください:
- 生成:
mvn archetype:generate -Dfilter=antigravity-service-patternを実行します(または内部のscaffold.pyを使用)。 - 構造確認:
src/main/javaがcom.antigravity.[domain].[service]パターンに従っていることを確認します。 - 真実確認:
pom.xmlにspring-boot-starter-validationとspring-boot-starter-actuatorが含まれていることを検証します。
手順 2: ドメイン機能の実装 (Red-Green-Refactor)
- Red: スライステストを作成します(例: API の場合は
@WebMvcTest、永続化の場合は@DataJpaTest)。- ツール:
mvn test -Dtest=MyFeatureTest
- ツール:
- Green: サービスロジックを実装します。
- 公理チェック: DTO には
recordを使用します。Entity をコントローラーを通して公開しないようにします。
- 公理チェック: DTO には
- Refactor: 静的解析を実行します。
- ツール:
mvn checkstyle:checkとmvn pmd:check。
- ツール:
手順 3: レジリエンスと可観測性のセットアップ
- Actuator を追加:
/actuator/healthと/actuator/metricsが公開されていても保護されていることを確認します。 - ロギング設定: ELK/Loki 向けに JSON 出力を備えた
logback-spring.xmlを使用します。 - サーキットブレーカー: すべての外部 API 呼び出しに Resilience4j を使用します。
プロセス (障害状態とリカバリー)
| 症状 | 原因の可能性 | リカバリー操作 |
|---|---|---|
BeanDefinitionOverrideException | コンテキスト内で重複する Bean 名。 | @Configuration クラス内の @Component と @Bean の重複をチェックします。@Primary は最後の手段としてのみ使用してください。 |
LazyInitializationException | トランザクション外でプロキシにアクセス。 | 決して spring.jpa.open-in-view=true を使用しないでください。@Service レイヤー内または EntityGraph で DTO マッピングを使用します。 |
ConnectionTimeout | DB コネクションプールの飽和。 | hikari.maximum-pool-size をチェックします。すべての DB ストリーム/コネクションが try-with-resources 内にあることを確認します。 |
慣例的コードパターン (金標準)
"Truthful" Record DTO
public record UserResponse(
UUID id,
@NotBlank String username,
@Email String email,
LocalDateTime createdAt
) {}
"Observable" Service
@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class OrderService {
private final ObservationRegistry observationRegistry;
@Transactional
public OrderResponse placeOrder(OrderRequest request) {
return Observation.createNotStarted("order.place", observationRegistry)
.observe(() -> {
// Business logic here
return new OrderResponse(...);
});
}
}
前提条件
| アクション | コマンド |
|---|---|
| ビルド & チェック | mvn clean verify |
| 高速テストループ | mvn test -DskipITs |
| 脆弱性チェック | mvn ossindex:audit |
| コード フォーマット | mvn spotless:apply |
使用時期
このブループリントは、Java/Spring サービスを構築、リファクタリング、またはデバッグする際に使用してください。これは「Spring とは何か」に対する「どのように構築するか」の権威的なソースです。
ベストプラクティス
- システム公理 (A1-A5) に従ってください
- すべての変更が検証可能であることを確認してください
- 将来のメンテナンスに備えて複雑なロジックを文書化してください
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- gitwalter
- ライセンス
- MIT
- 最終更新
- 2026/4/13
Source: https://github.com/gitwalter/antigravity-agent-factory / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。