How @Configuration, @Component, and @ComponentScan annotations works in Spring Framework? Component Scanning Example