はじめに
Javaでの開発では、Spring Boot
を利用する事が多くなりましたが、改めて Spring
フレームワークの全体を見直したいと思ったので、まとめました。
Spring Framework
Spring Framework
の概要からです。
そもそもの Spring Framework
を理解するために、「概要」から一読しましょう!
1. Spring Framework / プラットフォーム系
モジュール名 | 概要 |
---|---|
Spring Core | DI(依存性注入)、IoCコンテナなど、Springの基盤となる機能。 |
Spring Context | Beanのライフサイクル管理、イベント発火、国際化対応など。 |
Spring Expression Language (SpEL) | EL式を用いたBeanの値参照・条件分岐。 |
Spring AOP | アスペクト指向プログラミングを実現(横断的関心事の実装)。 |
Spring MVC | サーブレットベースのWebアプリケーションフレームワーク。 |
Spring WebFlux | 非同期・リアクティブプログラミング対応のWebフレームワーク(Netty対応)。 |
2. データアクセス系
モジュール名 | 概要 |
---|---|
Spring JDBC | JDBCアクセスのラッパー、例外変換、接続管理。 |
Spring ORM | JPA/Hibernate/MyBatisなどORM統合。 |
Spring Data JPA | JPAベースのリポジトリ自動生成機能。 |
Spring Data MongoDB / Redis / Cassandra | NoSQL向けのデータアクセス統合。 |
Spring Transaction | 宣言的トランザクション管理。 |
3. バッチ・ジョブ系
モジュール名 | 概要 |
---|---|
Spring Batch | バッチ処理フレームワーク(ジョブ、ステップ、リトライ、スキップなど)。 |
Spring Cloud Data Flow | バッチ・ストリーム処理のオーケストレーションツール。 |
4. セキュリティ系
モジュール名 | 概要 |
---|---|
Spring Security | 認証・認可、CSRF対策、OAuth2対応。 |
Spring Authorization Server | OAuth2 / OpenID Connect 認可サーバー実装。 |
5. メッセージング・統合系
モジュール名 | 概要 |
---|---|
Spring Integration | EAI(エンタープライズアプリ統合)パターン実装。 |
Spring AMQP | RabbitMQとの統合。 |
Spring Kafka | Apache Kafkaとの統合。 |
Spring WebSocket | WebSocketサポート。 |
6. テスト系
モジュール名 | 概要 |
---|---|
Spring Test | JUnit/MockMvcなどの統合テスト支援。 |
Spring Boot Test | Spring Bootアプリの統合テストサポート。 |
7. Spring Boot 系(アプリ起動・設定)
モジュール名 | 概要 |
---|---|
Spring Boot | 自動設定、組み込みサーバー(Tomcat/Jetty/Undertow)、外部設定管理。 |
Spring Boot Actuator | 運用・監視用のエンドポイント提供。 |
Spring Project
補足として、Spring Projects
の一覧も記載します。
モジュール名 | 概要 |
---|---|
Spring Boot | スタンドアロンで動くSpringアプリを簡単に作成できるフレームワーク。 |
Spring Framework | IoC、AOP、Web、データアクセスなど、Springの基盤となるコアフレームワーク。 |
Spring Cloud | 分散システム/マイクロサービス向けのツール群。 |
Spring Cloud Data Flow | バッチ・ストリーム処理のオーケストレーションを担うサービス。 |
Spring Data | 複数データストアへの一貫したアクセス手段を提供するデータ操作基盤。 |
Spring Integration | EAIパターンを実現する統合フレームワーク。 |
Spring Batch | 大量データ処理に対応したバッチ処理向けフレームワーク。 |
Spring Security | 認証・認可を扱うセキュリティ機能を提供。 |
Spring AI | AIモデルを企業システムに統合するためのアプリ基盤。 |
Spring AMQP | AMQP(例:RabbitMQ)向けSpring抽象化ライブラリ。 |
Spring for Apache Kafka | Apache Kafka向けSpring抽象化支援ライブラリ。 |
Spring CLI | CLIベースでSpringアプリ操作を支援する開発者向けツール。 |
Spring GraphQL | GraphQL APIをSpringで扱いやすくするフレームワーク。 |
Spring Modulith | モジュール化設計に基づく構造化Spring Bootアプリ支援。 |
Spring for Apache Pulsar | Apache Pulsar向けSpring抽象化支援ライブラリ。 |
Spring Shell | コマンドラインベースのSpringアプリ構築支援シェル。 |
Spring Statemachine | 状態機械の概念をSpringアプリで扱うためのフレームワーク。 |
Spring Authorization Server | OAuth2/OpenID Connect認可サーバー構築ライブラリ。 |
Spring LDAP | LDAP連携を簡略化するテンプレートベースのサポートライブラリ。 |
Spring Session | 分散セッション操作のためのAPIと実装を提供。 |
Spring Vault | Vaultと統合してセキュアな秘密情報管理を提供。 |
Spring HATEOAS | HATEOAS原則に沿ったREST表現作成を簡略化。 |
Spring REST Docs | RESTドキュメントを自動生成するドキュメントツール。 |
Spring Initializr | Springプロジェクトひな形をWebで即生成できるサービス。 |
Spring Tools | IDE統合によるSpring開発支援ツール群。 |
Spring Release Calendar | Spring 各プロジェクトのリリーススケジュールを提供。 |
おわりに
Spring Framework
の内容は知っているものが多いですが、Spring Projects
まで広げるとよく知らないプロジェクトもありますね。
次は、Spring Projects
の1つずつに1歩だけ深堀しても面白いかも!?
参考(感謝)