一. 什么是springboot
1.用來簡化spring應用的初始搭建以及開發過程 使用特定的方式來進行配置(properties或yml文件)
2.創建獨立的spring引用程序 main方法運行
3.嵌入的Tomcat 無需部署war文件
4.簡化maven配置
5.自動配置spring添加對應功能starter自動化配置
二.springboot常用的starter有哪些
可以去Maven倉庫中搜索以下插件,pom文件依賴即可
Maven倉庫官網:http://mvnrepository.com/
1.spring-boot-starter-web (嵌入tomcat和web開發需要servlet與jsp支持)
2.spring-boot-starter-data-jpa (數據庫支持)
3.spring-boot-starter-data-redis (redis數據庫支持)
4.spring-boot-starter-data-solr (solr搜索應用框架支持)
5.mybatis-spring-boot-starter (第三方的mybatis集成starter)
三. springboot自動配置的原理
1.@EnableAutoConfiguration這個注釋告訴SpringBoot“猜”你將如何想配置Spring,基於你已經添加jar依賴項。如果spring-boot-starter-web已經添加Tomcat和Spring MVC,這個注釋自動將假設您正在開發一個web應用程序並添加相應的spring設置。會自動去maven中讀取每個starter中的spring.factories文件 該文件里配置了所有需要被創建spring容器中的bean
2.使用@SpringbootApplication注解 可以解決根類或者配置類(我自己的說法,就是main所在類)頭上注解過多的問題,一個@SpringbootApplication相當於@Configuration,@EnableAutoConfiguration和 @ComponentScan 並具有他們的默認屬性值
四.springboot讀取配置文件的方式
springboot默認讀取配置文件為application.properties或者是application.yml

springboot集成mybatis的過程
添加mybatis的starter maven依賴
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
在mybatis的接口中 添加@Mapper注解
在application.yml配置數據源信息
五. springboot如何添加【修改代碼】自動重啟功能
添加開發者工具集=====spring-boot-devtools
六.微服務
以前的模式是 所有的代碼在同一個工程中 部署在同一個服務器中 同一個項目的不同模塊不同功能互相搶占資源
微服務 將工程根據不同的業務規則拆分成微服務 微服務部署在不同的機器上 服務之間進行相互調用
Java微服務的框架有 dubbo(只能用來做微服務),spring cloud(提供了服務的發現,斷路器等)
七. springcloud如何實現服務的注冊和發現
服務在發布時 指定對應的服務名(服務名包括了IP地址和端口) 將服務注冊到注冊中心(eureka或者zookeeper)
這一過程是springcloud自動實現 只需要在main方法添加@EnableDisscoveryClient 同一個服務修改端口就可以啟動多個實例 調用方法:傳遞服務名稱通過注冊中心獲取所有的可用實例 通過負載均衡策略調用(ribbon和feign)對應的服務
八.ribbon和feign區別
Ribbon添加maven依賴 spring-starter-ribbon 使用@RibbonClient(value="服務名稱") 使用RestTemplate調用遠程服務對應的方法
feign添加maven依賴 spring-starter-feign 服務提供方提供對外接口 調用方使用 在接口上使用@FeignClient("指定服務名")
Ribbon和Feign的區別:
Ribbon和Feign都是用於調用其他服務的,不過方式不同。
1.啟動類使用的注解不同,Ribbon用的是@RibbonClient,Feign用的是@EnableFeignClients。
2.服務的指定位置不同,Ribbon是在@RibbonClient注解上聲明,Feign則是在定義抽象方法的接口中使用@FeignClient聲明。
3.調用方式不同,Ribbon需要自己構建http請求,模擬http請求然后使用RestTemplate發送給其他服務,步驟相當繁瑣。
Feign則是在Ribbon的基礎上進行了一次改進,采用接口的方式,將需要調用的其他服務的方法定義成抽象方法即可,
不需要自己構建http請求。不過要注意的是抽象方法的注解、方法簽名要和提供服務的方法完全一致。
九.springcloud斷路器的作用
當一個服務調用另一個服務由於網絡原因或者自身原因出現問題時 調用者就會等待被調用
者的響應 當更多的服務請求到這些資源時
導致更多的請求等待 這樣就會發生連鎖效應(雪崩效應) 斷路器就是解決這一問題斷路器
有完全打開狀態
一定時間內 達到一定的次數無法調用 並且多次檢測沒有恢復的跡象 斷路器完全打開,那
么下次請求就不會請求到該服務半開,短時間內 有恢復跡象 斷路器會將部分請求發給該服務 當
能正常調用時 斷路器關閉,當服務一直處於正常狀態 能正常調用 斷路器關閉
作者:HaleyLiu
鏈接:https://www.jianshu.com/p/0674c1544edf
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。
