SpringBoot 及其 基本原理(一)


個人博客網:https://wushaopei.github.io/    (你想要這里多有)

前言: 分布式架構及微服務理念

1.SOA理念(思想)

SOA :即 Service Oriented Architecture,面向服務架構

主張:

       把項目中的各個模塊從單一架構中拆分出來,封裝成一個一個可以遠程調用的服務,從而實現分布式架構。

       開發具體的每一個服務時,使用一個interface定義這個服務的功能,這就是我們常說的暴露接口。

       當我們實現了interface,將接口暴露到了網絡上,可以進行遠程調用了,就可以說這個服務開發完成了,這就是我們常說的“寫接口”。

SOA精髓:通過提供服務和對服務的調用實現分布式架構。

項目 -----> 模塊 -------> 代碼

2. micro service 微服務理念

微服務主張服務的“微小化”,將各個模塊服務中重復的功能抽取出來封裝為微服務,用微服務組裝稱為各個功能模塊。功能模塊再組成項目。

  項目 ----->  模塊 -----> 微服務 -----> 代碼

3.關於 SpringCloud  和 SpringBoot  的關系

這是對微服務理念的一整套具體實現。

SpringBoot在微觀上開發具體的一個一個微服務。

SpringCloud在宏觀上統一管理、協調各個微服務。為微服務提供各個服務的注冊中心、網關、配置中心、負載均衡、熔斷機制、服務降級、服務監控、服務細節屏蔽等等。

4.SpringCloud 和 Dubbo 對比

  • 最重要的區別:

 Dubbo:底層RPC 調用

SpringCloud : 底層REST調用(HTTP)

SpringCloud 能夠為項目架構直接提供一整套解決方案。

Dubbo只能作為項目架構的核心和基石,完整的項目架構解決方案還需要借助其他技術。

5.SpringBoot工程的使用

  • 加入需要的場景 starter依賴
  • 配置properties或yml
  • 創建主啟動類
  • 通過注解開啟相關功能
  • 運行主啟動類

6.HelloWorld

6.1 操作步驟

①創建Maven工程

② 加入依賴

<!-- 繼承SpringBoot官方指定的父工程 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.8.RELEASE</version> </parent> <dependencies> <!-- 加入Web開發所需要的場景啟動器 --> <dependency> <!-- 指定groupId和artifactId即可,版本已在父工程中定義 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>

③創建主啟動類

④創建HelloHandler

@Controller public class HelloHandler { @ResponseBody @RequestMapping("/hello") public String hello() { return "Hello SpringBoot!"; } }

⑤ 啟動

運行主啟動類中的main方法啟動SpringBoot程序。

⑥通過網頁訪問handler方法

擴展: 關於包掃描的問題

SpringBoot中主啟動類會自動掃描該類所在包的子包,相當於xml配置文件中的<mvc:context scan=”包掃描路徑”/>

  • 隱式默認聲明自動導包

注意: 要進行掃描的包必須處於主啟動類的子包中。

  • 手動掃描包

    使用注解進行包

訪問結果:

6.2 通過 Spring 插件創建 SpringBoot工程

限制: 每次創建工程都必須聯網:必須借助Spring 插件

效果 :自動生成主啟動器和application.properties,以及測試類

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM