入口类和@SpringBootApplication

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组合的包名下

原文地址:https://www.cnblogs.com/yourGod/p/9205836.html