ページ内ナビ
概要
DaggerはJava/Android向けのcompile-time dependency injection frameworkです。annotation processorがdependency graphをcompile時に検証し、reflectionやruntime bytecode generationを使わずplain Java sourceを生成します。Android向けにはHilt ecosystemも同じrepositoryで提供されています。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
@Inject・@Provides・@Binds・@Componentでdependency graphを宣言する
constructor injectionやmodule bindingをannotationで記述し、componentをentry pointとしてcompile-timeにobject graphを生成します。
出典:[1]
compile-time validationとgenerated Java sourceでDIを実装する
Daggerはgraph analysisをcompile時に完了し、runtime reflectionやbytecode generationを使いません。missing bindingやcycle等をbuild時に検出します。
出典:[1]
AndroidではHiltでframework integrationを標準化する
同repositoryはHilt Android artifacts/pluginも提供し、Android framework componentへのDI setupを簡略化できます。
出典:[1]
向いている用途
dependency graphを型安全かつbuild時に確定したいJava/Android applicationに向く
runtime containerを避けながら、大規模なobject graphをcompile errorで検証したいapplicationやlibraryに適します。
出典:[1]
導入前の確認
annotation processor/KSP等のbuild設定が必要
runtime dependencyだけではimplementationは生成されません。Mavenではdagger-compilerをannotation processorとして、Gradle/Kotlinでは対応するprocessing設定を追加します。
2.60系のHilt変更と2.60.1 regression fixを確認する
2.60系のHilt要件・plugin behavior変更に加え、2.60.1ではcompiler option propagation regressionと@CanIgnoreReturnValue import問題が修正されています。
出典:[2]
参考にした公式資料
- [1]Dagger 2.60.1 README(2026-10-04)
- [2]Dagger 2.60.1 release(2026-10-04)
- [3]Dagger 2.60.1 build versions(2026-10-04)
- [4]Dagger Apache 2.0 license(2026-10-04)
編集部からの補足
Daggerはruntime reflectionではなくannotation processingでimplementationを生成します。Hiltを使う場合は2.60系の要件・plugin変更と2.60.1 regression fixも確認してください。
3ステップで試す
- 1
Dagger 2.60.1用の最小Maven projectを作る
Java 17のisolated projectにDagger runtimeとannotation processorを2.60.1で固定します。
mkdir -p dagger-demo/src/main/java/demo && printf '%s\n' '<project xmlns="http://maven.apache.org/POM/4.0.0">' '<modelVersion>4.0.0</modelVersion>' '<groupId>demo</groupId><artifactId>dagger-demo</artifactId><version>1.0.0</version>' '<properties><maven.compiler.release>17</maven.compiler.release></properties>' '<dependencies><dependency><groupId>com.google.dagger</groupId><artifactId>dagger</artifactId><version>2.60.1</version></dependency></dependencies>' '<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.13.0</version><configuration><annotationProcessorPaths><path><groupId>com.google.dagger</groupId><artifactId>dagger-compiler</artifactId><version>2.60.1</version></path></annotationProcessorPaths></configuration></plugin></plugins></build>' '</project>' > dagger-demo/pom.xml - 2
@Inject classと@Componentを定義する
constructor injectionとcomponent entry pointだけを使った最小graphを作ります。
printf '%s\n' 'package demo;' 'import javax.inject.Inject;' 'final class CoffeeMaker { @Inject CoffeeMaker() {} }' > dagger-demo/src/main/java/demo/CoffeeMaker.java && printf '%s\n' 'package demo;' 'import dagger.Component;' '@Component interface AppComponent { CoffeeMaker maker(); }' > dagger-demo/src/main/java/demo/AppComponent.java - 3
compile-time generated componentを確認する
annotation processorを実行し、plain Javaのgenerated componentが作られることを確認します。
cd dagger-demo && mvn -q compile && test -f target/generated-sources/annotations/demo/DaggerAppComponent.java && echo 'Dagger generated source OK'
成長
成長の推移 · 直近30日
17,702 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 29
- Open PR
- 105
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
- Stars
- 17,702
- Forks
- 2,045
- Watchers
- 510
- Open Issues
- 265
- Contributors
- 133
- 所有者種別
- Organization
- 主要言語
- Java
- ライセンス
- Apache-2.0
- リポジトリ最終更新
- 2026/10/03
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- REST Assured7,139 Stars
共通タグ 2件 · 同じ言語
JavaのDSLでREST APIへrequestを送り、status・header・JSON/XML bodyを検証する
Java - Signal Android29,414 Stars
共通タグ 2件
privacy-preserving messagingを担う大規模Android clientを読む
Kotlin - Gatling6,956 Stars
共通タグ 2件
Java・JavaScript/TypeScript・Kotlin・Scalaでload testをcode化しCI/CDへ組み込むperformance testing platform
Scala - ZEN Engine2,034 Stars
共通タグ 2件
業務判断を一つのJSONで定義し、複数の実行環境へ届ける
Rust - DBeaver51,949 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
多数のdatabaseを一つのdesktop SQL workspaceから操作する
Java - Firebase Android SDK2,570 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
FirebaseのAndroid SDK群をJava/Kotlin・Gradleのmonorepoで開発し、unit/integration testやMaven local配布まで検証する
Java
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。