在一个Spring Boot应用程序中,当使用@SpringBootApplication注解标记主应用程序类时,Spring Boot会自动扫描主应用程序类所在包及其子包中的所有类,加载它们并管理它们的实例。这样,在Spring Boot应用程序中,所有标记为@Component、@Service、@Repository、@Controller等注解的类会被Spring框架自动扫描并注册为Spring bean。这些bean就可以在应用程序中被注入、调用或使用。
因此,当运行主应用程序类SpringBootTest1Application后,Spring Boot会自动扫描并加载所有在同一包及其子包中标记为Spring bean的类,从而可以在主应用程序中调用别的文件里的类。通过依赖注入和自动配置,Spring Boot提供了一种快速、简单、方便地创建和管理Spring应用程序的方式。
在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。
@Service用于标注业务层组件
@Controller用于标注控制层组件(如struts中的action)
@Repository用于标注数据访问组件,即DAO组件
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注 通过在类上使用 @Service、@Controller、@Repository和@Component注解,Spring会自动创建相应的 BeanDefinition 对象,并注册到 ApplicationContext 中。