CINXE.COM

Dagger

<!DOCTYPE html> <html class="t-blue"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Dagger</title> <meta name="description" content="Dagger is a fully static, compile-time dependency injection framework for both Java and Android."> <link href='https://fonts.googleapis.com/css?family=Roboto:400,400italic,700|Roboto+Mono:400,500' rel='stylesheet' type='text/css'> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link rel="stylesheet" href="/css/main.css"> <link rel="canonical" href="https://dagger.dev/"> <link rel="alternate" type="application/rss+xml" title="Dagger" href="https://dagger.dev/feed.xml"> <script async src="https://www.googletagmanager.com/gtag/js?id=G-R5FZ763JXQ"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-R5FZ763JXQ'); </script> </head> <body> <nav class="c-navigation "> <div class="c-navigation__container u-container"> <a class="c-navigation__item is-active" href="/">Home</a> <a class="c-navigation__item " href="/dev-guide">Dagger</a> <a class="c-navigation__item " href="/hilt">Hilt</a> <a class="c-navigation__item " href="/tutorial">Dagger Tutorial</a> </div> </nav> <article class="c-article"> <header class="c-header c-article__header"> <div class="u-container"> <h1 class="c-header__title">Dagger</h1> </div> </header> <div class="c-article__container"> <div class="c-article__main"> <p>Dagger is a fully static, compile-time <a href="http://en.wikipedia.org/wiki/Dependency_injection">dependency injection</a> framework for Java, Kotlin, and Android. It is an adaptation of an <a href="https://github.com/square/dagger">earlier version</a> created by <a href="http://square.github.io/">Square</a> and now maintained by Google.</p> <p>The latest Dagger release is: <a href="https://github.com/google/dagger/releases/latest">Dagger 2.56.1</a></p> <p>Dagger aims to address many of the development and performance issues that have plagued reflection-based solutions. More details can be found in <a href="https://www.youtube.com/watch?v=oK_XtfXPkqw">this talk</a> (<a href="https://docs.google.com/presentation/d/1fby5VeGU9CN8zjw4lAb2QPPsKRxx6mSwCe9q7ECNSJQ/pub?start=false&amp;loop=false&amp;delayms=3000">slides</a>) by <a href="https://twitter.com/gk5885">Gregory Kick</a>.</p> <h2 id="where-are-the-docs">Where are the docs?</h2> <ul> <li><a href="users-guide">User documentation</a></li> <li><a href="https://dagger.dev/api/latest/">Dagger API @ HEAD</a></li> </ul> <h2 id="where-is-the-code">Where is the code?</h2> <ul> <li><a href="https://github.com/google/dagger">https://github.com/google/dagger</a></li> </ul> <h2 id="have-a-question">Have a question?</h2> <ul> <li>Ask it on Stack Overflow with the <a href="http://stackoverflow.com/questions/tagged/dagger-2">dagger-2</a> tag</li> <li>Send an email to <a href="https://groups.google.com/forum/#!forum/dagger-discuss">dagger-discuss@googlegroups.com</a></li> </ul> <!-- References --> </div> </div> <script> function chooseCodeLanguage(language) { var code_off = document.getElementsByClassName("c-codeselector__code"); for (var i = 0; i < code_off.length; i++) { code_off[i].classList.add("c-codeselector__hidden_code"); } var code_on = document.getElementsByClassName("c-codeselector__code_" + language); for (var i = 0; i < code_on.length; i++) { code_on[i].classList.remove("c-codeselector__hidden_code"); } var buttons_off = document.getElementsByClassName("c-codeselector__button"); for (var i = 0; i < buttons_off.length; i++) { buttons_off[i].classList.add("c-codeselector__unselected_button"); } var buttons_on = document.getElementsByClassName("c-codeselector__button_" + language); for (var i = 0; i < buttons_on.length; i++) { buttons_on[i].classList.remove("c-codeselector__unselected_button"); } } function getCodeSelectorButtonLanguage(button) { var classList = button.classList; for (var i = 0; i < classList.length; i++) { if (classList[i].startsWith("c-codeselector__button_")) { return classList[i].substring("c-codeselector__button_".length); } } throw new Error("Could not find code language on button"); } function setCodeSelectorButtonOnClick(button, language) { button.onclick = function() { chooseCodeLanguage(language) }; } function initCodeSelectors() { var buttons = document.getElementsByClassName("c-codeselector__button"); for (var i = 0; i < buttons.length; i++) { setCodeSelectorButtonOnClick(buttons[i], getCodeSelectorButtonLanguage(buttons[i])); } chooseCodeLanguage("java"); } initCodeSelectors(); </script> </article> <footer class="c-footer"> <div class="u-container c-footer__container"> <p>&copy; Dagger 2025</p> </div> </footer> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10