解決問題:
什么是掃包?
SpringBoot的入口函數?
SpringBoot包掃描的注解?
1. 什么是掃包?
什么是掃包?就是發現Service,Controller,Component然后自動注入到Spring容器中。
2. SpringBoot的入口。
SpringBoot的入口和常見的java程序一樣都是main()函數。
public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); }
3. 啟動方式
SpringBoot啟動,指的是SpringBoot找到項目的入口,然后把Component、Controller、Service注入到Spring容器中。
3.1 SpringBoot的啟動方式一(通過@SpringBootApplication注解、)
@SpringBootApplication public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); } }
備注:
SpringBootApplication注解:負責啟動SpringBoot項目。這個注解實現了掃描包的功能,掃描范圍是該文件所在的當前目錄和同級目錄。
3.2 SpringBoot的啟動方式二(通過@EnableAutoConfiguration注解)
@EnableAutoConfiguration @ComponentScan("需要掃描包的包名") public class Application { public static void main(String[] args){ SpringApplication.run(Application.class, args); } }
備注:
@EnableAutoConfiguration默認的掃包范圍是當前類中。
@ComponentScan可以指定掃包范圍。
結論,@SpringBootApplication注解等於@EnableAutoConfiguration注解加上@ComponentScan注解。