For setter injection of XML configured beans, the init-method gives you the opportunity to check the state of your object before any methods get called. Remember there is no compile-time check that an argument is passed to initialize each field of the object. So even though a setter may be defined in the java class, the bean definition in the XML could be missing a property tag.