1. 程式人生 > >SpringBoot入門及原理

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)