1、入門java
1.簡介web
Spring Boot是一個簡化Spring開發的框架。用來監護spring應用開發,約定大於配置,去繁就簡,just run 就能建立一個獨立的,產品級的應用。spring
咱們在使用Spring Boot時只須要配置相應的Spring Boot就能夠用全部的Spring組件,簡單的說,spring boot就是整合了不少優秀的框架,不用咱們本身手動的去寫一堆xml配置而後進行配置。從本質上來講,Spring Boot就是Spring,它作了那些沒有它你也會去作的Spring Bean配置。數據庫
2.優勢json
3.單體應用與微服務api
單體應用是把全部的應用模塊都寫在一個應用中,致使項目越寫越大,模塊之間的耦合度也會愈來愈高。微服務是一種架構風格,用微服務能夠將應用的模塊單獨部署,對不一樣的模塊進行不一樣的管理操做,不一樣的模塊生成小型服務,每一個功能元素最後均可以成爲一個能夠獨立替換、獨立升級的功能單元,各個小型服務之間經過http進行通訊。數組
4.Spring Boot的核心特色tomcat
·微服務:springboot
使用Spring Boot能夠生成獨立的微服務功能單元服務器
·自動配置:
針對不少Spring應用程序常見的應用功能,Spring Boot能自動提供相關配置
·起步依賴:
告訴Spring Boot須要什麼功能,它就能引入須要的庫。
·命令行界面:
這是Spring Boot的可選特性,藉此你只需寫代碼就能完成完整的應用程序,無需傳統項目構建。
·Actuator:
讓你可以深刻運行中的Spring Boot應用程序。
5.簡單案例:使用maven建立HelloWorld項目
第一步:首先要配置Spring Boot 依賴
<parent><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent>Spring Boot的版本仲裁中心;之後咱們導入依賴默認是不須要寫版本。(沒有在dependencies裏面管理的依賴天然須要聲明版本號) <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
spring-boot-starter-web:
spring-boot-starter:spring-boot場景啓動器。幫咱們導入了web模塊正常運行所依賴的組件。
Spring Boot將全部的功能場景都抽取出來,作成一個個的starters(啓動器),只須要在項目裏面引入這些starter 相關場景的全部依賴都會導入進來。要用什麼功能就導入什麼場景的啓動器
·第二步:新建包結構以下圖
·第三步:編輯相對應的類代碼
·HelloController.java
@RestController//標註是一個Controller類 而且支持json數據格式輸出public class HelloController { //經過 http://localhost:8080/sayHello訪問該方法 @RequestMapping("/sayHello") public String hello(){ return "hello world"; } }
·MainTest.java
@SpringBootApplication//表明springboot的啓動類 用來標註主程序類 說明是一個springboot應用public class MainTest { public static void main(String[] args) { //將springboot應用驅動起來 SpringApplication.run(MainTest.class); } }
[生辰八字起名字][1]
·第四步:運行main方法
運行main方法,等到自動部署服務器完成,而後經過地址就能夠訪問到相應的數據。
6.案例解析---相應的問題
·爲何只配置一個Spring Boot依賴:
·入口類的@SpringBootApplication註解:
·AutoConfigurationPackage:
自動掃描問題@ SpringBootApplication標記的主類,在主類所在包或者所在的子包下面找相應的控制類,而後根據相應的註解自動配置相應的項目所需的bean
7.如何快速新建Spring Boot項目
注意建立Spring Boot時注意網絡鏈接的問題,保持網絡暢通。點擊New File,選擇Project選擇Spring Initializr,加載完成後查看相應的JDK版本是否合適,確保後點擊next
設置項目的GroupID和Artifact。選擇相應的語言和要生成的jar包或者war包以及JDK版本
勾選建立項目所須要的依賴,好比數據庫,web等依賴,這裏咱們簡單的介紹,不作具體的詳解,就選擇一個web依賴
選擇完畢後,點擊finish完成新建項目等待項目新建完成。
建立完畢後,保持建立的結構是這個形式便可。
建立項目完畢後,根據上面的案例簡單的建立一個項目測試一下,測試經過便可。
8.Spring Boot的配置文件
使用Spring Boot配置文件首先須要有JavaBean類,而後才能在相應的配置文件中爲javabean中的屬性賦值
想要向JavaBean類中賦值,須要在javabean的類中添加相應的註解@Component和@ConfigurationProperties(prefix = "person")。@Component將類添加進容器,@ConfigurationProperties配置文件中的數據注入到類中
· Dog.java
public class Dog {private String name; private String age;}
· Person.java
/**
**/
@Component@ConfigurationProperties(prefix = "person") public class Person { private String name; private Integer age; private Boolean sex; private Date birthday; private List<String> list; private Map<String,Object> map;private Dog dog;}
·配置文件:
配置文件名是固定的 application.properties 或application.yml
·配置文件的做用:
修改SpringBoot自動配置的默認值;SpringBoot在底層都給咱們自動配置好。
·application.properties詳解
示例:
在application.properties中配置相應的屬性以後,從新運行項目,發現服務器的端口啓動號變成了9999,證實該段代碼能夠修改默認的8080端口。
· application.properties
person.age=80 person.birthday=2019/02/5 person.list=a,b,c person.name=旺財 person.sex=false person.map.v1=k1 person.map.v2=k2 person.dog.name=jjj person.dog.age=6
注意:在使用application.properties文件向配置文件可能會出現亂碼,注意改變編碼格式爲UTF-8
·application.yml詳解
·1.YAML文件詳解
(1) YAML文件定義:
YAML(YAML Ain’t Market Language)語言文件,以數據爲中心,比json、XML等文件更加適合作配置文件
(2) YAML文件的基本語法:
(3) YAML的值的寫法:
(4) YAML支持三種數據格式:對象,數組,基本數據類型
·2.YAML的經常使用寫法示例
· application.xml
person:name: 張三 age: 20 sex: false birthday: 2019/01/11 list: - a - b map: -k1: v1 -k2: v2 -dog: {name: ww,age: 12} dog: name: ww age: 2
相應的配置文件和類編寫完畢後,編輯測試類,運行,測試經過。
9.Spring Boot中的特殊註解
這裏就講解幾個經常使用的註解吧,畢竟時間有限,你們能夠到網上查一下,具體的註解
@SpringBootApplication註解分析
@SpringBootApplication是一個複合註解,包括@ComponentScan,@SpringBootConfiguration,@EnableAutoConfiguration。
1.@SpringBootConfiguration繼承自@Configuration,兩者功能也一致,標註當前類是配置類,並會將當前類內聲明的一個或多個以@Bean註解標記的方法的實例歸入到srping容器中,而且實例名就是方法名。
2.@EnableAutoConfiguration的做用啓動自動的配置。
3.@EnableAutoConfiguration註解的意思就是Springboot根據你添加的jar包來配置你項目的默認配置,好比根據spring-boot-starter-web,來判斷你的項目是否須要添加了webmvc和tomcat,就會自動的幫你配置web項目中所須要的默認配置。在下面博客會具體分析這個註解,快速入門的demo實際沒有用到該註解。
4.@ComponentScan,掃描當前包及其子包下被@Component,@Controller,@Service,@Repository註解標記的類並歸入到spring容器中進行管理。是之前的<context:component-scan>(之前使用在xml中使用的標籤,用來掃描包配置的平行支持)。因此本demo中的User爲什麼會被spring容器管理
@ResponseBody
表示該方法的返回結果直接寫入HTTP response body中,通常在異步獲取數據時使用,用於構建RESTful的api。在使用@RequestMapping後,返回值一般解析爲跳轉路徑,加上@esponsebody後返回結果不會被解析爲跳轉路徑,而是直接寫入HTTP response body中。好比異步獲取json數據,加上@Responsebody後,會直接返回json數據。該註解通常會配合@RequestMapping一塊兒使用
@Controller
用於定義控制器類,在spring項目中由控制器負責將用戶發來的URL請求轉發到對應的服務接口(service層),通常這個註解在類中,一般方法須要配合註解@RequestMapping
@RestController
用於標註控制層組件(如struts中的action),@ResponseBody和@Controller的合集。
@Service
通常用於修飾service層的組件
@Repository
使用@Repository註解能夠確保DAO或者repositories提供異常轉譯,這個註解修飾的DAO或者repositories類會被ComponetScan發現並配置,同時也不須要爲它們提供XML配置項。
@Bean
用@Bean標註方法等價於XML中配置的bean。
@Value
注入Spring boot application.properties配置的屬性的值。