title: Java dependency injection: Dagger 1 vs Dagger 2, which is better?
body: <p>What are the advantages of <a href="https://google.github.io/dagger/" rel="noreferrer">Dagger 2</a> over <a href="https://github.com/google/auto/blob/master/value/userguide/index.md" rel="noreferrer">Dagger 1</a>?</p>
  
  <p>So far I found (just) 2:</p>
  
  <ul>
  <li>Dagger 2 allows you to use code obfuscation with proguard</li>
  <li>Dagger 2 is faster (which is not much of an advantage when using it for android application but it is sure an important thing if you use it for some kind of server)</li>
  </ul>
  
  <p>In the same time I found one big disadvantage: you cannot have module overrides (<code>@Module(overrides = true)</code>) in Dagger 2, which is largely annoying at least for me - it was very useful for unit test.</p>
  
  <p>Are there other advantages / disadvantages?</p>