SpringBoot專案開發(一):開篇

閃耀的瞬間發表於2018-07-16
1.新開了一個 SpringBoot 專案開發系列部落格,專案開發中遇到的問題與解決方案分享給大家。

2000 年左右 Java 行業中都是 EJB 的天下,但是 EJB 本身比較龐大複雜,各企業使用起來並不是很便利,於是2002年 Rod Johnson 釋出我們所知的 Spring 框架的基礎。接下來 Spring 發展迅速,平均兩三年就會釋出一個新版本,直到最近 9 月份推出的 Spring 5.0,Spring 也從一個小小的開源軟體發展為 Java 界第一個框架

Spring 在不斷髮展的過程中也出現了一些問題,需要的配置檔案也越來越多,而且大部分是重複的配置,也經常因為配置檔案配置錯誤產生很多問題。慢慢 Spring 變成了一個大而全的框架,背離它簡潔開發的理念。Spring 也意識到了這些問題,急需有這麼一套軟體可以解決這些問題,這個時候微服務的概念也慢慢興起,Spring 站在了這麼一個高度上開發了一個全新的技術棧:Spring Boot。

最近幾年流行微服務,在業界SpringCloud已發展成微服務的標準,而SpringBoot是SpringCloud的基礎,參考了《Spring Cloud微服務實戰》《Spring Cloud與Docker微服務架構實戰》在程式設計師DDD的部落格看了很多篇部落格,實際開發後才發現它的龐大,研究還行,落地到專案中就有很多需要做的了,微服務涉及到如下圖中的基礎設施
這裡寫圖片描述

2.架構設計的主要目的是為了解決軟體系統複雜度帶來的問題
3.架構設計因遵循:合適原則,簡單原則,演化原則

因SpringBoot方便、快速、少配置,決定用它來開發專案,隨著業務與需求和複雜度的增加,開發人員的配置,以後能快速升級到SpringCloud微服務體系中

Spring Boot 由 Spring、Spring MVC 演化而來,註解也繼承自 兩者。下面我們看下 Spring MVC 中常用的註解:

  • @Controller:該註解用於類上,其表明該類是 Spring MVC 的 Controller;
  • @RestController:該註解是一個組合註解,只能用於類上,其作用與 @Controller、@ResponseBody一起用於類上等價。
  • @RequestMapping:該註解主要用來對映 Web 請求,其可以用於類或者方法上;
  • @RequestParam:該註解主要用於將請求引數資料對映到功能處理方法的引數上;
  • @ResponseBody:該註解的作用是將方法的返回值放在 Response 中,而不是返回一個頁面,其可以用於方法上或者方法返回值前;
  • @RequestBody:用於讀取 HTTP 請求的內容(字串),通過 Spring MVC 提供的 HttpMessageConverter 介面將讀到的內容轉換為 JSON、XML 等格式的資料並繫結到 Controller 方法的引數上;
  • @PathVariable:用於接收請求路徑引數,將其繫結到方法引數上;
4.這個系列會分享些什麼內容
  • 基於 SpringBoot 搭建一個屬於你的Web開發框架
  • HikariCP:號稱Java平臺最快的資料庫連線池,有網友對一些連線池做過對比,請自行檢視
  • Thymeleaf:Html模板引擎,替代 JSP
  • Mybatis:是一款優秀的持久層框架,它支援定製化 SQL、儲存過程以及高階對映
  • Redis:完全開源,是一個高效能的 鍵值 資料庫,豐富的資料型別,資料可持久化,伺服器當機後不用人工恢復,往往快取使用者會話和各業務都需讀的資料,可緩解資料庫壓力
  • Mongodb:開源,京東商品儲存、百度網盤大量使用。是一個基於分散式檔案儲存的 文件 資料庫,分片+副本集可組成一個高可用叢集,直接海量資料,而且高效能。分片指將資料庫拆分,副本集可以理解為資料庫的主從,支援讀寫分,適合儲存大量商品資料
  • RabbitMQ:開源的訊息佇列中介軟體,支援訊息的持久化、負載均衡和叢集,且叢集易擴充套件,可在叢集中配置某些節點資料持久在記憶體上,某些節點把資料持久在硬碟上,換來高效能,具有一個Web監控介面,易於管理
  • 分散式鎖:分散式系統中,大量使用者搶購某一商品,為防止商品超出庫存,保證資料的準確性就需分散式鎖了,因為分散式環境是多 程式 ,專案中基於redis實現
  • 分散式限流:高可用,保障系統能穩定提供服務
5.為什麼選擇SpringBoot?      ---->簡單、快速、方便

下一篇 建立專案

相關文章