SpringBoot專案開發(一):開篇
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? ---->簡單、快速、方便
下一篇 建立專案
相關文章
- 專案實戰介面開發SpringBootSpring Boot
- 開發利器JRebel部署SpringBoot專案Spring Boot
- springboot模組化開發專案搭建Spring Boot
- IDEA開發SpringBoot專案問題集IdeaSpring Boot
- 完全使用 Docker 開發 PHP 專案 (一): 安裝篇DockerPHP
- RPA專案之開發規則篇
- 在deepin上使用Fleet開發SpringBoot 3.0.0專案Spring Boot
- 開源一個功能完整的SpringBoot專案框架Spring Boot框架
- python3 專案開發-中級篇Python
- 測試開發專題-開篇
- 完全使用 Docker 開發 PHP 專案 (二): 配置篇DockerPHP
- idea執行springboot開源專案GunsIdeaSpring Boot
- 快速開始api開發(一)專案初始化API
- 一本實踐的專案開發《Python專案開發實戰(第2版)》Python
- python專案開發Python
- MyBatis:使用MyBatis Generator快速完成Springboot專案資料層開發MyBatisSpring Boot
- SpringBoot(一) 新建專案Spring Boot
- 使用 Docker 開發 PHP 專案(一):安裝DockerPHP
- 開發一個好專案:八、建立viewView
- 我如何用Django開發一個專案Django
- 開發自己的工具庫(一):專案搭建
- K8S 部署 SpringBoot 專案(一篇夠用)K8SSpring Boot
- JavaEE開發之SpringBoot框架深入剖析專案實戰(魔樂科技)JavaSpring Boot框架
- 小技巧:SpringBoot專案如何讓前端開發提高效率?Spring Boot前端
- vue專案開發-3Vue
- 物聯網【專案開發】開源系統開發
- 區塊鏈零擼專案系統開發|挖礦專案開發區塊鏈
- 世鏈財經|區塊鏈專案開發指南,如何開發一款區塊鏈專案區塊鏈
- 第一個SpringBoot專案Spring Boot
- 開始一個專案
- 使用Express MongoDB開發一個完整MVC專案ExpressMongoDBMVC
- 一個外行如何快速融入node專案開發
- 無需付費,教你IDEA社群版中開發Web專案(SpringBoot\Tomcat)IdeaWebSpring BootTomcat
- Flutter開發第一個專案android studio 開發工具的使用說明FlutterAndroid
- 開發參考:介紹一款多專案java開發平臺Java
- Java專案開發中實現分頁的三種方式一篇包會Java
- 【Windows Mobile開發系列 之 開始一】瞭解智慧專案和一般PC專案的區別Windows
- 推薦一個.Ner Core開發的配置中心開源專案