title: What is the best way to initialize a bean?
body: <p>In spring you can initialize a bean by having the applicationContext.xml invoke a constructor, or you can set properties on the bean.  What are the trade offs between the two approaches?  Is it better to have a constructor (which enforces the contract of having everything it needs in one method) or is it better to have all properties (which gives you flexibility to only inject selectively for example when unit testing.)</p>
  
  <p>What are the trade offs (between writing a bean that uses a constructor to establish it's initial state, or using properties and perhaps an afterProperties() method) ?</p>