一个springboot的入口程序常常如下写法:
/** * @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用 */ @SpringBootApplication public class App{ public static void main(String[] args) { // Spring应用启动起来 SpringApplication.run(App.class,args); } }
@SpringBootApplication来标注这是一个springboot的应用,被标注的类是一个主程序, SpringApplication.run(App.class, args);传入的类App.class必须是被@SpringBootApplication标注的类。
@SpringBootApplication是一个组合注解,其作用相当于以下几个注解的组合,使用@SpringbootApplication注解可以解决根类或者配置类(我自己的说法,就是main所在类)头上注解过多的问题,一个@SpringbootApplication相当于@Configuration,@EnableAutoConfiguration和 @ComponentScan 并具有他们的默认属性值:
01、@Configuration(或者@SprootbootConfiguration) 配置类,对应配置文件,本质上是一个@Componet,只是更有意义,见名知意
02、@EnableAutoConfiguration:开启自动配置,将主配置类所在包及其下面所有后代包的所有注解扫描
03、 @ComponentScan :配置需要扫描的包