SpringBoot--------Restful([夢學谷]九)

 

百度首頁zyb95279
Spring框架(三):SpringBoot框架(由淺入深,深度解讀)

予象科技
發佈時間:01-2600:32
優雅的SpringBoot框架

一、入門
1.簡介
Spring Boot是一個簡化Spring開發的框架。用來監護spring應用開發,約定大於配置,去繁就簡,just run 就能創建一個獨立的,產品級的應用。
我們在使用Spring Boot時只需要配置相應的Spring Boot就可以用所有的Spring組件,簡單的說,spring boot就是整合了很多優秀的框架,不用我們自己手動的去寫一堆xml配置然後進行配置。從本質上來說,Spring Boot就是Spring,它做了那些沒有它你也會去做的Spring Bean配置。
2.優點

3.單體應用與微服務
單體應用是把所有的應用模塊都寫在一個應用中,導致項目越寫越大,模塊之間的耦合度也會越來越高。微服務是一種架構風格,用微服務可以將應用的模塊單獨部署,對不同的模塊進行不同的管理操作,不同的模塊生成小型服務,每個功能元素最後都可以成爲一個可以獨立替換、獨立升級的功能單元,各個小型服務之間通過http進行通信。
4.Spring Boot的核心特點
·微服務:
使用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); } }
·第四步:運行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
/**
* 將配置文件中配置的每一個屬性的值,映射到這個組件中
* @ConfigurationProperties:告訴SpringBoot將本類中的所有屬性和配置文件中相關的配置進行綁定;
* prefix = "person":配置文件中哪個下面的所有屬性進行一一映射
* 只有這個組件是容器中的組件,才能容器提供的@ConfigurationProperties功能;
**/
@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詳解
示例:
#設置端口號爲9999 server.port=9999
在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文件的基本語法:
1. 使用縮進表示層級關係
2. 縮進時不允許使用Tab鍵,只允許使用空格
3. 縮進的空格的數目不重要,只要相同層級的元素左對齊即可
4. 大小寫敏感
(3) YAML的值的寫法:
1. k: v:字面直接來寫;
2. 字符串默認不用加上單引號或者雙引號;
3. "":雙引號;不會轉義字符串裏面的特殊字符;特殊字符會作爲本身想表示的意思
4. name: "zhangsan \n lisi":輸出;zhangsan 換行 lisi
5. '':單引號;會轉義特殊字符,特殊字符終只是一個普通的字符串數據
6. name: ‘zhangsan \n lisi’:輸出;zhangsan \n lisi
(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配置的屬性的值。

作者最新文章
Java & C++(引言一)
DVI類型板卡採集程序解析
Camera Link類型板卡採集程序解析
相關文章
java遠程調用之RMI(自己也可以寫代碼控制別人電腦)

Javaweb-類加載器-類加載器的瞭解入門

python是如何來連接mysql的

SpringBoot系列教程web篇之如何自定義參數解析器

JAVA的反射,你需要了解


設爲首頁© Baidu 使用百度前必讀 意見反饋 京ICP證030173號 
京公網安備11000002000001號
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章