SpringBoot入門及原理
//**********************基礎入門(手動) //pom 依賴
org.springframework.boot spring-boot-starter-parent 2.0.1.RELEASE<!--SpringBoot要整合SpringMVC進行Controller的開發,所以專案要匯入web的啟動依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--熱部署配置 資源修改後不需要重新啟動 (部署失敗見下文)--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
//熱部署失敗,根本原因資料IDEA不會自動編譯,修改IDEA配置 // settings ——> Complier ——> Build project antomabaclly 選勾 // 然後 Shift+Ctrl+Alt+/,選擇Registry ——> compiler.automake.allow.when.app.running 選勾
//編寫SpringBoot引導類: (必需)
package com.itheima; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MySpringBootApplication { public static void main(String[] args) { SpringApplication.run(MySpringBootApplication.class); }
}
//在引導類MySpringBootApplication同級包或者子級包中建立QuickStartController:
package com.itheima.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class QuickStartController { @RequestMapping("/quick") @ResponseBody public String quick(){ return "springboot 訪問成功!"; }
}
測試: 啟動伺服器並訪問:http://localhost:8080/quick //*************************************************************
//基礎入門(自動)*****
1,建立一個工程 new 一個Module,(這裡不再選擇Maven),選擇Spring Initializr,確定jdk(其它預設)-->next
2,選擇專案名稱 等等資訊
3(重點) 這裡選擇工程所需要的 功能打上√ next即可
//*************************************************************
小工具:
http://patorjk.com/software/taag 可以自定義字串
在resources 建立一個 banner.txt 字串 貼進去
啟動的時候就是這個字串(想象 qwq)
首先SpringBoot 有一個起步依賴 spring-boot-starter-parent ,點開之後會有一個spring-boot-starter-parent.pom 這個pom裡面有一個讀取配置檔案, 配置檔案必須在resources下,命名為apploaction*.yml yaml properties(yml->yaml->properties後面會覆蓋前面的屬性),再去這個pom的父類,點開 spring-boot-dependencies 就看到了各種座標的版本控制 避免了版本衝突,實際上就是做了依賴傳遞,整合一套合適的座標組合,提供更好的體驗
有一個配置類SpringbootDemoApplication 它有一個註解 @SpringBootApplication
這個註解有三個作用 點開這個註解之後 :
@SpringBootConfiguration: 等同與@Configuration,既標註該類是Spring的一個配置類
@EnableAutoConfiguration:SpringBoot自動配置功能開啟
@ComponentScan : 包掃描 它掃描的是該類的包同級目錄或者下級目錄下
@EnableAutoConfiguration 註解,引入 AutoConfigurationImportSelector.class,進去之後有一個SpringFactoriesLoader.loadFactoryNames它方法要載入auto-configuration下的META-INF/spring.factories
在這個spring.factories裡面就有各種整合spring的配置,這些配置都是預設的,而我們只需要在配置apploaction 中覆蓋預設的配置就可以了
那麼問題來了,我們怎麼去獲取在配置覆蓋中的健名稱呢?
在spring.factories隨便點開一個,它裡面有一個@EnableConfigurationProperties 註解 ,找到它引入的類(例如: server.port=8081)