1.启动类

| import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Chapter1Application {

public static void main(String[] args) {
SpringApplication.run(Chapter1Application.class, args);
}

} | | —- |


@SpringBootApplication 开启了Spring的组件扫描和Spring Boot 的自动配置功能,实际上 @SpringBootApplication将三个有用的主键组合在了一起,其中有:
1. Spring自己的@Configuration 表名该类使用Spring基于Java的配置
2. Spring自己的@ComponentScan 启动组件扫描,这样你写的Web控制器类和其他组件才能被自动发现并注册为Spring的应用程序上下文里的Bean
3. SpringBoot 的@EnableAutoConfiguration : 这个不起眼的小注解也可以成为@Abracadabra 就是这一行配置开启了SpringBoot自动配置的魔力,让你不用再写成篇的配置了

需要注意启动类一定要在包结构的外层,不然的话,如果某些类在启动类的外层的话,会扫描不到注解等等,结果就是加载不到.比如A类在com.xxx,而启动类在com.xxx.yyy ,这样的话,就加载不到A类上的配置信息等等


2.@SpringBootApplication


使用这个注解后,会触发自动配置(auto-configuration) 和组件扫描 (component scanning)

1、会导致项目启动时间变长。当启动一个大的应用程序,或将做大量的集成测试启动应用程序时,影响会特别明显。
2、会加载一些不需要的多余的实例(beans)。
3、会增加 CPU 消耗。