Hello World探究
Hello World探究
1、POM文件
1、父項目
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version> </parent>他的父項目是 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>1.5.9.RELEASE</version><relativePath>../../spring-boot-dependencies</relativePath> </parent> 他來真正管理Spring Boot應用里面的所有依賴版本;Spring Boot的版本仲裁中心;
以后我們導入依賴默認是不需要寫版本;(沒有在dependencies里面管理的依賴自然需要聲明版本號)
2、啟動器
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>spring-boot-starter-==web==:
? spring-boot-starter:spring-boot場景啟動器? ??幫我們導入了web模塊正常運行所依賴的組件;
Spring Boot將所有的功能場景都抽取出來,做成一個個的starters(啟動器),只需要在項目里面引入這些starter相關場景的所有依賴都會導入進來。要用什么功能就導入什么場景的啟動器
主程序類,主入口類
/*** @SpringBootApplication 來標注一個主程序類,說明這是一個Spring Boot應用*/ @SpringBootApplication public class HelloWorldMainApplication {public static void main(String[] args) {// Spring應用啟動起來SpringApplication.run(HelloWorldMainApplication.class,args);} }@SpringBootApplication: Spring Boot應用標注在某個類上說明這個類是SpringBoot的主配置類,SpringBoot就應該運行這個類的main方法來啟動SpringBoot應用;
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = {@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication {
@SpringBootConfiguration??Spring Boot的配置類;
? 標注在某個類上,表示這是一個Spring Boot的配置類;
? @Configuration??配置類上來標注這個注解;
? 配置類 ----- 配置文件;配置類也是容器中的一個組件;@Component
@EnableAutoConfiguration:開啟自動配置功能;
? 以前我們需要配置的東西,Spring Boot幫我們自動配置;@EnableAutoConfiguration告訴SpringBoot開啟自動配置功能;這樣自動配置才能生效;
@AutoConfigurationPackage @Import(EnableAutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration {
@AutoConfigurationPackage:自動配置包
? @Import(AutoConfigurationPackages.Registrar.class):
? Spring的底層注解@Import,給容器中導入一個組件;導入的組件由AutoConfigurationPackages.Registrar.class;
==將主配置類(@SpringBootApplication標注的類)的所在包及下面所有子包里面的所有組件掃描到Spring容器;==
? @Import(EnableAutoConfigurationImportSelector.class);
? 給容器中導入組件?
? EnableAutoConfigurationImportSelector:導入哪些組件的選擇器;
? 將所有需要導入的組件以全類名的方式返回;這些組件就會被添加到容器中;
? 會給容器中導入非常多的自動配置類(xxxAutoConfiguration);就是給容器中導入這個場景需要的所有組件,并配置好這些組件;
有了自動配置類,免去了我們手動編寫配置注入功能組件等的工作;
? SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader);
Spring Boot在啟動的時候從類路徑下的META-INF/spring.factories中獲取EnableAutoConfiguration指定的值,將這些值作為自動配置類導入到容器中,自動配置類就生效,幫我們進行自動配置工作;==以前我們需要自己配置的東西,自動配置類都幫我們;
J2EE的整體整合解決方案和自動配置都在spring-boot-autoconfigure-1.5.9.RELEASE.jar;
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Hello World探究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Boot的第一个入门程序
- 下一篇: 使用Spring Initializer