title: Why does Spring dependency injection have init-method?
body: <p>I come from a .NET background, using dependency injection containers like Unity, Ninject, Castle Windsor, etc. Recently I have begun to learn to use Spring's dependency injection capabilities for Java.</p>
  
  <p>In learning Spring, I've seen that it's possible to specify on a bean XML configuration the notion of an 'init-method' and 'destroy-method'. </p>
  
  <p>The purpose of specifying an 'init-method' appears to be to do any setup at bean creation time that you might want to do. Here's where I get confused. Why would you need a separate method to perform setup, instead of just <strong>using the constructor</strong> to perform any setup needed by the object, like normal/good object oriented design would dictate?</p>
  
  <p>In other words, if a dependency is required by a class, shouldn't it be injected in the constructor, which you <em>know</em> has been called, whereas the object could exist in a state without having called it's 'init-method' ?</p>