Some Important Question on Spring Boot Fundamentals

How can we provide basePackage in Spring f/w 
@ComponentScan(basePackage="in.nareshit.raghu")     ,But in Spring Boot above code is given by @SpringBootApplication

What is difference between @Component and @ComponentScan

@ComponentScan: Containe detect/find/read class from given base-package

@Component : It indicates to Spring container create object, Spring container --> Detect the class --> create the object

What is the difference between ApplicationContext, IOC and DI?

Theory Programming
OOPs Java
ORM Hibernate
DI(Dependency Injection)

IOC (Inversion of Control)/ Spring Container(2 types)

BeanFactory(old container--XML supporting)

ApplicationContext(new container --XML, Annotation, java config)