title: How to do manual DI with deep object graphs and many dependencies properly
body: <p>I believe this questions has been asked in some or the other way but i'm not getting it yet.</p>
  
  <p>We do a GWT project and my project leader disallowed to use GIN/Guice as an DI framework (new programmers are not going to understand it, he argued) so I try to do the DI manually.</p>
  
  <p>Now I have a problem with deep object graphs. The object hierarchy from the UI looks like this:</p>
  
  <p>AppPresenter->DashboardPresenter->GadgetPresenter->GadgetConfigPresenter</p>
  
  <p>The GadgetConfigPresenter way down the object hierarchy tree has a few dependencies like CustomerRepository, ProjectRepository, MandatorRepository, etc.</p>
  
  <p>So the GadgetPresenter which creates the GadgetConfigPresenter also has these dependencies and so on, up to the entry point of the app which creates the AppPresenter.</p>
  
  <ul>
  <li>Is this the way manual DI is supposed to work?</li>
  <li>doesn't this mean that I create all dependencies at boot time even I don't need them?</li>
  <li>would a DI framework like GIN/Guice help me here?</li>
  </ul>