SpringBoot通常有一个名为*Application的入口类,入口类里有一个标准的Java应用的入口方法,main方法,在该方法中使用SpringApplication.run(xxxxxApplicaton.class,args),启动SpringBoot的应用项目
@SpringBootApplication是SpringBoot的核心注解,它是一个组合注解,源码如下:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documentd @Inherited @Configuration @EnableAutoConfiguration @ComponentScan public @interface SpringBootApplicaion{ Class<?>[] exclude() default{}; String[] excludeName() default{}; }
@SpringBootApplication 注解主要组合了@Configuration、@EnableAutoConfiguraion、@ComponentScan
其中,@EnableAutoConfiguration让SpringBoot根据类路径中的jar包依赖为当前项目进行自动配置。
比如:添加了spring-boot-starter-web依赖,会自动添加Tomcat和SpringMVC的依赖,那么SpringBoot会对Tocmat和SpringMVC进行自动配置
比如:添加了spring-boot-starter-data-jar依赖,SpringBoot会自动进行JPA相关的配置
SpringBoot会自动扫描@SpringBootApplication所在类的同级包以及下级包里的Bean(如果是JPA项目,还可以扫描注解@Entity的实体类)。
建议入口类放置着的位置在groupId + artifactID组合的包名下