Spring Boot簡介:
簡化Spring應用開發(fā)的一個框架;(減少繁瑣的配置)
整個Spring技術棧的一個大整合;(整合了Spring技術棧實現(xiàn))
J2EE開發(fā)的一站式解決方案;(微服務)
微服務
微服務:架構風格(服務微化)
一個應用應該是一組小型服務;可以通過HTTP的方式進行互通;
單體應用:ALL IN ONE
微服務:每一個功能元素最終都是一個可獨立替換和獨立升級的軟件單元;
簡單的說:傳統(tǒng)的服務器開發(fā)需將所有配置整合并創(chuàng)建war文件,用tomcat進行部署才能打開,當要擴增新功能或者修改代碼時,需要把整個程序重新部署一遍(效率低)
而微服務則是將每個功能模塊分別部署到服務器中,整合時只需要通過HTTP交互的方式將它們組合起來,加強了開發(fā)效率
SpringBoot入門程序
首先導入相關依賴
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
編寫一個Spring boot應用
/**
* @SpringBootApplication 來標注一個主程序類,說明這是一個Spring Boot應用
*/
@SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args) {
// Spring應用啟動起來
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}
編寫相關的Controller、Service
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello World!";
}
}
一個Spring boot程序就這樣完成了


打包運行的方式
<!-- 這個插件,可以將應用打包成一個可執(zhí)行的jar包;-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<!--將這個應用打成jar包,直接使用java -jar的命令進行執(zhí)行;-->

Spring boot自動配置原理
父項目
<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里面管理的依賴自然需要聲明版本號)
啟動器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
? 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應用;
常用配置
使用@ConfigurationProperties注解 提示 “Spring Boot Configuration Annotation Processor not found in classpath ”
解決方法:
注入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
Controller(控制器獲取參數(shù)注解的使用)

@PathVariable使用方法:

package com.ygg.luckeymoney;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
@RestController
@RequestMapping("/hello")
public class HelloController {
@GetMapping("/say/{id}")
//這里id是抓取鏈接中占位符位置的那個參數(shù)值
public String say(@PathVariable("id")Integer id){
return "id " + id;
}
}
