title: How does the EnableAutoConfiguration spring annotation work?
body: <p>I am no fan of gross over abstractions, <s>And i think Spring has committed a major felony.</s></p>
  
  <p>But I'm willing to overlook it this time if someone can explain the algorithm behind the 'auto' configuration.</p>
  
  <p>Having a look at <a href="http://docs.spring.io/spring-boot/docs/0.5.0.M3/api/org/springframework/boot/autoconfigure/EnableAutoConfiguration.html" rel="noreferrer">spring's own javadocs</a>, It doesn't give much away other than saying that it will intelligently guess what you need and something to do about conditional beans.</p>
  
  <p>Does someone know what algorithm is used to determine what needs to be loaded?</p>