title: Difference between Spring annotations
body: <p><strong>Questions:</strong>  </p>
  
  <p>1) Difference between <code>@Component</code> and <code>@Configuration</code>?  </p>
  
  <p>I have read that both remove the necessity of wiring code to be put in XML, but did not get the difference between these.</p>
  
  <p>2) What are the differences between <code>@Autowired</code>, <code>@Inject</code> and <code>@Resource</code>?<br>
  - Which one to use when?<br>
  - What are the pros/cons of each?</p>