OSS探訪GitHubでログイン

データストア固有のSpring Dataモジュールへ、Repository、ページング、監査などの共通APIを提供する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
840
主要言語
Java
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/02
ページ内ナビ

概要

Spring Data Commonsは、Spring Data各モジュールが共有するデータアクセス基盤です。Repositoryインターフェース、ドメイン型のメタデータ、ページングと並べ替え、監査、メソッド名からの問い合わせ組み立てに必要な共通部品を提供します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

Repository契約でデータアクセスの形をそろえる

Repositoryと派生インターフェースは、ドメイン型とID型を中心にデータアクセスの契約を表します。データストア固有モジュールはこの契約を実装し、問い合わせメソッド名の解析や独自Repository実装の組み込みに利用します。

出典:[1][6]

Page、Pageable、Sortで結果の区切り方を共有する

Pageは現在の内容に加えて総件数や総ページ数を持ち、Pageableはページ番号・件数・並べ替えを表します。JPAやMongoDBなど異なるモジュールでも同じページングAPIを使えるため、サービス層やWeb層の境界をそろえやすくなります。

出典:[8][9]

ドメインメタデータと監査情報を共通化する

永続化対象クラスのメタデータモデル、作成者・更新者、作成時刻・更新時刻を扱う監査機能、複数ストアにまたがる基盤を共通部品として提供します。

出典:[1][7]

向いている用途

Spring Dataモジュールや共通ライブラリを設計するときに向く

データストア実装をまたいでRepositoryやページング型を受け渡すアプリケーション、またはSpring Data向けの拡張や独自モジュールを作る場合に役立ちます。単一アプリでも、PageをAPI応答へ変換したりRepository境界をテストしたりする共通語彙として利用できます。

出典:[1][8]

導入前の確認

単独ではデータベース接続や問い合わせ実行を提供しない

Commonsは共有インターフェースと基盤コードであり、データベースエンジンやJDBCドライバーではありません。実データを保存・検索するには、Spring Data JPA、MongoDB、Redisなど対象ストアに対応するモジュールと接続設定が必要です。

出典:[1][5]

4.0.7は対応するSpring世代とJava要件を合わせる

固定タグ4.0.7のREADMEはソースビルドにJDK 17以上を求め、Maven 3.5以上または同梱wrapperを案内しています。アプリケーションへ直接versionを固定する場合も、利用中のSpring FrameworkやSpring Bootが管理するSpring Data release trainとの互換性を先に確認してください。

出典:[1][2][3]

参考にした公式資料

  1. [1]Spring Data Commons 4.0.7 README(2026-10-04)
  2. [2]Spring Data Commons 4.0.7 release(2026-10-04)
  3. [3]Spring Data Commons 4.0.7 Maven metadata(2026-10-04)
  4. [4]Maven Compiler Plugin 3.14.1 release documentation(2026-10-04)
  5. [5]Spring Data project overview(2026-10-04)
  6. [6]Spring Data Commons 4.0.7 repository abstractions(2026-10-04)
  7. [7]Spring Data Commons 4.0.7 auditing reference(2026-10-04)
  8. [8]Spring Data Commons 4.0.7 Page API(2026-10-04)
  9. [9]Spring Data Commons 4.0.7 PageRequest API(2026-10-04)
編集部からの補足

データベース製品として比較するより、Spring Data JPAやMongoDBなどの上位モジュールが共有する契約を理解するために見るべきプロジェクトです。アプリケーションでは通常、対象データストアのSpring Dataモジュールを選び、その依存関係から利用します。

3ステップで試す

  1. 1

    Java 17向けの最小Mavenプロジェクトを作成

    JDK 17以上とMavenを用意し、Spring Data Commons 4.0.7とJava 17のrelease設定を解釈するMaven Compiler Plugin 3.14.1を固定した検証用プロジェクトを作ります。

    mkdir spring-data-commons-demo && cd spring-data-commons-demo && printf '%s\n' '<project xmlns="http://maven.apache.org/POM/4.0.0"><modelVersion>4.0.0</modelVersion><groupId>example</groupId><artifactId>commons-demo</artifactId><version>1</version><properties><maven.compiler.release>17</maven.compiler.release></properties><dependencies><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-commons</artifactId><version>4.0.7</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.14.1</version></plugin></plugins></build></project>' > pom.xml
  2. 2

    PageとRepository契約を使う例を追加

    特定データベースを設定せず、ドメイン型、PagingAndSortingRepository、PageRequest、Pageの共通APIを一つの例で確認します。

    mkdir -p src/main/java/example && printf '%s\n' 'package example;' 'import java.util.List;' 'import org.springframework.data.domain.*;' 'import org.springframework.data.repository.PagingAndSortingRepository;' 'record Person(Long id, String name) {}' 'interface People extends PagingAndSortingRepository<Person, Long> {}' 'public class Demo { public static void main(String[] args) { Pageable request = PageRequest.of(0, 2, Sort.by("name")); Page<Person> page = new PageImpl<>(List.of(new Person(1L, "Ada"), new Person(2L, "Grace")), request, 2); System.out.println(page.getContent()); System.out.println("pages=" + page.getTotalPages()); } }' > src/main/java/example/Demo.java
  3. 3

    コンパイルしてページ情報を実行確認

    型が4.0.7でコンパイルできることを確認し、2件の内容と総ページ数をローカルで表示します。データベースへの接続や書き込みは行いません。

    mvn -q compile dependency:build-classpath -Dmdep.outputFile=cp.txt && java -cp "target/classes:$(cat cp.txt)" example.Demo
公式READMEで確認

成長

成長の推移 · 直近30日

840 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
5
Open PR
25

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • spring-data
  • java
  • spring
  • ddd
  • framework
  • data-access
Stars
840
Forks
733
Watchers
86
Open Issues
194
Contributors
187
所有者種別
Organization
主要言語
Java
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/02

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?