国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Spring Boot從零入門1 詳述

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-10 22:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

[TOC]

1 開始之前

在開始學習Spring Boot之前,我之前從未接觸過Spring相關的項目,Java基礎還是幾年前自學的,現(xiàn)在估計也忘得差不多了吧,寫Spring Boot自己的學習過程前,同時給一起學習的同學們做個鼓勵,相信自己能夠學好,大概了解了下Spring的整個發(fā)展,還是有很多鋪墊知識是要知道的,而且就算知道,沒有實踐經(jīng)驗可能還是不能夠很深入的體會實際項目中有什么不一樣。總之,干就是了,然后就是堅持走下來,至于為什么要學習Spring Boot,這也是我自己的一個選擇,架構之路中一環(huán),武功中的一個大招,期待學會這個大招。Spring Boot已經(jīng)是Spring的最上層了,從上而下,從新到舊,打通整個Spring脈絡。

2 名詞術語

當然學習之前,肯定要去調(diào)研一番,了解各種跟Spring相關的名詞術語,因為實在太多了,如果不去了解,對后面的學習也會造成困惑,難以理解,尤其是從未接觸過Java Web,我們所學習跟Spring相關的知識最終都是如何更好更快的構建企業(yè)級Web應用。下面是我學習前所了解的一些名詞術語和該術語所扮演的功能角色解釋。

名詞術語 釋義
SQL & NOSQL NOSQL,Not Only SQL, 非關系型的數(shù)據(jù)庫統(tǒng)稱,常見如HBase,BigTable,Redis,Cassandra,LevelDB,MongoDB,CouchDB;SQL這里泛指RDBMS,即關系型數(shù)據(jù)庫管理系統(tǒng),常見如Oracle,DB2,SQL Server,Mysql等
Nginx Nginx是一款輕量級的Web服務器、正/反向代理服務器、負載均衡,郵件代理服務器和通用的TCP/UDP代理服務器,最初由俄羅斯人Igor Sysoev編寫,BSD許可 。由于它的內(nèi)存占用少,啟動極快,高并發(fā)能力強,在互聯(lián)網(wǎng)項目中廣泛應用。
Jetty Jetty 作為一個獨立的Servlet 引擎可以獨立提供Web 服務,但是它也可以與其他Web 應用服務器集成,所以它可以提供基于兩種協(xié)議工作,一個是HTTP,一個是AJP 協(xié)議。與Tomcat相比各有特點,作為后起之秀,總是帶著新鮮和快速成長的特性
Netty Netty是異步事件驅動(NIO,非阻塞IO)的網(wǎng)絡應用程序框架,用于快速開發(fā)可維護的高性能協(xié)議服務器和客戶端。而提供類似功能的有Tomcat和Jetty,Tomcat是基于Http協(xié)議的,而Netty支持各種協(xié)議和定制協(xié)議,包括Http、Websocket、SSL&TLS、Protobuf、RTSP、zlib&gzip、LFS等;Netty更是一種網(wǎng)絡編程框架,定制化開發(fā)更方便,類似的還有MINA
Undertow Undertow是一種用Java編寫的靈活的高性能Web服務器,可提供基于NIO的阻塞和非阻塞API。同樣的支持Http、Websocket協(xié)議
JDBC Java DataBase Connectivity,java數(shù)據(jù)庫連接,是一種用于執(zhí)行SQL語句的Java API,可以為多種關系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。
JPA JPA 伴隨 Java EE 5 發(fā)布,Sun 官方提出的一套 Java 持久化規(guī)范,它為 Java 開發(fā)人員提供了一種對象/關聯(lián)映射工具來管理 Java 應用中的關系數(shù)據(jù)。它的出現(xiàn)主要是為了簡化現(xiàn)有的持久化開發(fā)工作和整合 ORM 技術,結束現(xiàn)在 Hibernate,TopLink,JDO 等 ORM 框架各自為營的局面。
Servlet 在代碼層面,Servlet其實就是一個接口,定義了一套處理網(wǎng)絡請求的規(guī)范,所有實現(xiàn)Servlet的類,都需要實現(xiàn)它所定義的五個方法;在定義上,它就是一套Java EE規(guī)范,Tomcat & Jetty都是運載Servlet的容器
MyBatis MyBatis 是一款優(yōu)秀的持久層框架,MyBatis是iBatis的升級版,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數(shù)以及獲取結果集。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生類型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 對象)為數(shù)據(jù)庫中的記錄。 目前為止最新版本為3.5.3
Hibernate Hibernate是一種ORM框架,全稱為 Object Relative DateBase Mapping,在Java對象與關系數(shù)據(jù)庫之間建立某種映射,以實現(xiàn)直接存取Java對象,目前為止最新版本為 Hibernate ORM 5.4.7
struts2 Apache Struts是一個免費的開源MVC框架,用于創(chuàng)建優(yōu)雅的現(xiàn)代Java Web應用程序。它支持約定勝于配置,可以使用插件體系結構進行擴展,并且附帶了支持REST,AJAX和JSON的插件。目前最新版本是2.5.20
Struts Spring Hibernate(SSH) SSH 框架是由 struts2、spring、hibernate 三大框架組合起來的一套總框架;struts 的核心思想就是實現(xiàn) MVC;Spring 的核心思想就是解耦,也就是代碼中不出現(xiàn) new 實現(xiàn)類的代碼,我們創(chuàng)建了接口不用關心實現(xiàn)類是誰;hibernate 的核心思想就是(ORM - 對象關系映射) 連接數(shù)據(jù)庫,我們不用在數(shù)據(jù)庫寫創(chuàng)建表的語句
Spring 一個開放源代碼框架,為JVM上的基于響應和基于servlet的應用程序提供端到端支持,使用基本的JavaBean代替EJB。是一個用于創(chuàng)建Java企業(yè)應用程序的流行框架。 它已經(jīng)超越了最初的產(chǎn)品范圍,涵蓋了使用Spring框架并圍繞Spring框架構建的整個項目系列。Spring的核心技術是依賴項注入(DI),事件,資源,i18n,驗證,數(shù)據(jù)綁定,類型轉換,SpEL,AOP?,F(xiàn)在Spring框架已經(jīng)發(fā)展到了5.0了
Spring MVC Spring MVC是一個松散耦合的MVC框架,是Spring框架眾多組件中的一個,是一個使你能夠根據(jù)模型-視圖-控制器設計模式實現(xiàn)Web應用程序的組件。而Struts是緊密耦合的。對于企業(yè)級應用程序,你需要構建松散耦合的應用程序,因為它會使應用程序更可重用,更健壯以及更分布式。
Spring WebFlux 是Spring5中的新增模塊,開發(fā)人員可以使用 WebFlux 創(chuàng)建高性能的 Web 應用和客戶端,名稱中的 Flux 來源于 Reactor 中的類 Flux,該模塊中包含了對反應式 HTTP、服務器推送事件和 WebSocket 的客戶端和服務器端的支持;在服務器端開發(fā)中,WebFlux 支持兩種不同的編程模型:第一種是 Spring MVC 中使用的基于 Java 注解的方式;第二種是基于 Java 8 的 lambda 表達式的函數(shù)式編程模型
Spring Cloud Spring Cloud為開發(fā)人員提供了工具,以快速構建分布式系統(tǒng)中的某些常見模式(例如,配置管理,服務注冊和發(fā)現(xiàn),斷路器,智能路由,微代理,控制總線,一次性令牌,全局鎖,領導選舉,分布式會話,群集狀態(tài),負載均衡)。微服務架構集大成者,云計算最佳業(yè)務實踐。Spring Cloud基于Spring Boot實現(xiàn),使用HTTP的RESTful風格API作為調(diào)用方式。它所包含的多個子項目共同構建了微服務架構體系,總體來說,Spring Cloud相比Dubbo內(nèi)容更豐富,而且社區(qū)和生態(tài)相比也較Dubbo好,不過學習成本相對Dubbo要高
Dubbo 阿里巴巴在2011年開源,2013年停止更新,但在2017年9月又重啟維護并發(fā)布了新版本,Dubbo采用Zookeeper作為注冊中心,RPC作為服務調(diào)用方式,致力于提供高性能和透明化的RPC遠程服務調(diào)用方案。它與Spring無縫集成,基于服務提供方(服務端)與服務調(diào)用方(客戶端)角色構建簡單模型,其優(yōu)點是使用方便、學習成本低
Spring Cloud Data Flow 將企業(yè)連接到物聯(lián)網(wǎng)—移動設備,傳感器,可穿戴設備,汽車等。Spring Cloud Data Flow提供了用于創(chuàng)建可組合數(shù)據(jù)微服務的統(tǒng)一服務,這些微服務可解決流和基于ETL的數(shù)據(jù)處理模式。
Reactive stack & Servlet stack Spring5 提供了 Servlet 和反應式這兩種 Web 技術棧,在應用層面充分向異步和非阻塞并發(fā)靠攏。
微服務 微服務是一種分布式系統(tǒng)架構,是一種思想,是一種設計原則,Spring Cloud是開發(fā)微服務的主流方案,而Spring Boot以Spring Cloud為核心,讓開發(fā)微服務更快捷方便;開發(fā)微服務框架還有Netflix OSS(微服務實踐鼻祖)、Dubbo、gRPC等
Service Mesh(服務網(wǎng)格) 服務間通信的基礎設施層,可以將它比作是應用程序或者說微服務間的 TCP/IP,負責服務之間的網(wǎng)絡調(diào)用、限流、熔斷和監(jiān)控,相關Service Mesh開源項目有Linkerd、Envoy、Istio、Conduit、nginMesh、Kong等,與微服務相比,微服務更像是一個服務之間的生態(tài),專注于服務治理等方面,而服務網(wǎng)格更專注于服務之間的通信,以及和 DevOps 更好的結合

概念還是有點多的,而是基本指的大的軟件框架的概念,具體到其中每一個都可以延伸出很多知識,更多可以參見參考鏈接詳細了解。不過這只是開始,以后可以慢慢了解,并在實戰(zhàn)中了解每一個術語本身所具有的特性。

3 Spring Boot特性與優(yōu)缺點

既然我選擇了從上而下,從新而舊的方式去入手,那么我們對Spring Boot需要更多的了解,以及Spring Boot在整個技術棧中扮演了什么角色?

Spring Boot的口號是BUILD ANYTHING WITH SPRING BOOT,用Spring Boot構建一切!

從官方網(wǎng)站上的構件圖可以看出,Spring Boot是一個大容器,是構建所有基于Spring的應用程序的入口,Spring Boot旨在通過最少的Spring前期配置使得我們盡快啟動并運行項目,例如Spring Boot對比Spring MVC 最大的優(yōu)點就是使用簡單,約定大于配置,不會像之前用Spring MVC的時候,時不時被xml 配置文件搞的暈頭轉向。從這里看其實Spring Boot并不是我們構建Web應用的核心,也可以知道我們可以快速上手Spring Boot,但是我們卻可以通過這個入口抽絲剝繭去了解它所包含的所有。我們可以列一下Spring Boot的特性:

可以使用Spring Initializr在幾秒鐘內(nèi)快速入門

通過Spring Initializr(https://start.spring.io/),我們可以基于Web UI快速構建一個Spring Boot項目

構建輸出任何內(nèi)容:REST API,WebSocket,Web,流,任務等

總之就是Web相關都行!

簡化安全策略集成

對SQL和NoSQL的非常友好的支持

支持運行期內(nèi)嵌容器:Tomcat,Jetty和Undertow

非常輕松地開發(fā)和測試我們的Web應用程序

開發(fā)者生產(chǎn)工具,如LiveReload 和 Auto Restart

自動版本依賴管理

避免編寫大量樣板代碼,注釋和XML配置。

可用于生產(chǎn)的功能,例如跟蹤,指標和運行狀況

可以用你喜歡的開發(fā)IDE,如Spring Tool Suite(STS)、IntelliJ IDEA(IDEA)或NetBeans等

它提供了CLI(命令行界面)工具,可以非常輕松快捷地從命令提示符處開發(fā)和測試Spring Boot(Java或Groovy)應用程序

提供了許多插件

可使用Maven和Gradle等構建工具非常輕松地開發(fā)和測試Spring Boot應用程序

可以非常輕松地與嵌入式數(shù)據(jù)庫和內(nèi)存數(shù)據(jù)庫一起使用

有了上面的這些特性,Spring Boot能給我?guī)硎裁春锰幓蛘呦拗颇兀?/p>

對Spring進行了包裝,使得易于理解和開發(fā)Spring應用,簡化配置、測試、打包和集成第三方工具

快速配置項目,管理依賴版本,快速配置單元測試,集成測試等,提高開發(fā)效率和生產(chǎn)率

只能解決類似Spring Framework的問題,而不能解決新的問題,即Spring FrameWork能做的就能做

將現(xiàn)有或舊版Spring Framework項目轉換為Spring Boot應用程序會很費勁

4 總結

本篇從零開始詳述了Spring Boot相關的名詞術語,從零開始了解Spring Boot,并講述了Spring Boot的特性與優(yōu)缺點。通過對Spring Boot的詳述,讓我們對它有了一個基本的了解,接下來,我們開始進入Spring Boot的內(nèi)部和實戰(zhàn)。

5 更多

更多關于Spring Boot相關的學習,可以持續(xù)關注我的公眾號小白AI或者微信小程序小白AI博客。

本文屬于原創(chuàng),轉載注明出處,歡迎關注CSDNfreeape或微信小程序小白AI博客

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    14

    文章

    10253

    瀏覽量

    91487
  • spring
    +關注

    關注

    0

    文章

    341

    瀏覽量

    15936
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    解析Rockchip平臺U-Boot核心文件:boot_rkimg.c到底做了什么?

    在嵌入式開發(fā)中,U-Boot 作為引導程序的 “中流砥柱”,負責初始化硬件、加載內(nèi)核并啟動系統(tǒng)。對于 Rockchip 平臺的設備(如常見的開發(fā)板、智能終端),boot_rkimg.c 是 U-Boot 中專門處理啟動流程的核心
    的頭像 發(fā)表于 02-03 15:29 ?746次閱讀
    解析Rockchip平臺U-<b class='flag-5'>Boot</b>核心文件:<b class='flag-5'>boot</b>_rkimg.c到底做了什么?

    基于安路DR1M90 FPSoC的Linux系統(tǒng)全流程開發(fā)指南(4)

    本手冊由創(chuàng)龍科技研發(fā),針對安路飛龍 DR1M90,詳述 Linux 系統(tǒng)開發(fā)流程:LinuxSDK 配置編譯、BOOT.bin(FSBL+U-Boot)開發(fā)、Kernel 與 Root
    的頭像 發(fā)表于 11-30 15:46 ?2184次閱讀
    基于安路DR<b class='flag-5'>1</b>M90 FPSoC的Linux系統(tǒng)全流程開發(fā)指南(4)

    深入理解?RK3506 U-Boot?重定位:代碼到原理

    ?U-Boot?代碼初始加載地址(通常是片內(nèi)?ROM?或?Flash)復制到運行效率更高的片外?RAM,再切換執(zhí)行環(huán)境到?RAM?中運行。 本文將結合?U-Boot?源碼中?ARM Cortex?核心
    的頭像 發(fā)表于 11-28 07:05 ?595次閱讀
    深入理解?RK3506 U-<b class='flag-5'>Boot</b>?重定位:<b class='flag-5'>從</b>代碼到原理

    基于安路DR1M90 FPSoC 的Linux 系統(tǒng)全流程開發(fā)指南(3)

    本手冊由創(chuàng)龍科技研發(fā),針對安路飛龍 DR1M90,詳述 Linux 系統(tǒng)開發(fā)流程:LinuxSDK 配置編譯、BOOT.bin(FSBL+U-Boot)開發(fā)、Kernel 與 Root
    的頭像 發(fā)表于 11-26 17:01 ?319次閱讀
    基于安路DR<b class='flag-5'>1</b>M90 FPSoC 的Linux 系統(tǒng)全流程開發(fā)指南(3)

    基于安路DR1M90 FPSoC 的Linux 系統(tǒng)全流程開發(fā)指南(1

    本手冊由創(chuàng)龍科技研發(fā),針對安路飛龍 DR1M90,詳述 Linux 系統(tǒng)開發(fā)流程:LinuxSDK 配置編譯、BOOT.bin(FSBL+U-Boot)開發(fā)、Kernel 與 Root
    的頭像 發(fā)表于 11-25 14:09 ?387次閱讀
    基于安路DR<b class='flag-5'>1</b>M90 FPSoC 的Linux 系統(tǒng)全流程開發(fā)指南(<b class='flag-5'>1</b>)

    一款基于Java+Spring Boot+Vue的智慧隨訪管理系統(tǒng)源碼

    智慧隨訪管理系統(tǒng)源碼,一款基于Java+Spring Boot+Vue的B/S架構醫(yī)院隨訪管理系統(tǒng)源碼,采用前后端分離技術(Ant-Design+MySQL5),具有自主版權和落地案例。 隨訪管理
    的頭像 發(fā)表于 11-13 15:38 ?398次閱讀
    一款基于Java+<b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b>+Vue的智慧隨訪管理系統(tǒng)源碼

    fn_u-boot-spl.bin和u-boot-spl.bin區(qū)別是什么?請問如何u-boot-spl.bin生成fn_u-boot-spl.bin?

    uboot) = fn_u-boot-spl.bin add_firmHeadu-boot-spl.bin#add_firmHeadxxx.bin\"-n\"#output fn_$1
    發(fā)表于 07-11 07:58

    STM32H747的BOOT1是哪個管腳?

    STM32H747 datasheet里面沒有BOOT1,只有BOOT0。請問boot1是哪個管腳?還是就是沒有,沒有的話 BOOT0 上下拉分別什么啟動配置?
    發(fā)表于 07-11 07:44

    DeepSeek:入門到精通

    電子發(fā)燒友網(wǎng)站提供《DeepSeek:入門到精通.pdf》資料免費下載
    發(fā)表于 05-28 14:12 ?5次下載

    死角玩轉STM32——系統(tǒng)篇

    本文共4冊,由于資料內(nèi)存過大,分開上傳,有需要的朋友可以去主頁搜索下載哦~ 《死角玩轉 STM32》系列教程由初級篇、中級篇、高級篇、系統(tǒng)篇、四個部分組成,更適合初學者,步步為營,入門到精通
    發(fā)表于 05-21 14:08

    死角玩轉STM32——中級篇

    本文共4冊,由于資料內(nèi)存過大,分開上傳,有需要的朋友可以去主頁搜索下載哦~ 《死角玩轉 STM32》系列教程由初級篇、中級篇、高級篇、系統(tǒng)篇、四個部分組成,更適合初學者,步步為營,入門到精通
    發(fā)表于 05-21 13:56

    典型電路原理、電路識圖入門到精通等資料

    1、電路識圖入門到精通高清電子資料 由淺入深地介紹了電路圖的基礎知識、典型單元電路的識圖方法,通過“入門篇”和“精通篇”循序漸進、由淺入深地介紹了電路圖的基礎知識、典型單元電路的識圖
    的頭像 發(fā)表于 04-15 15:53 ?2.4w次閱讀
    典型電路原理、電路識圖<b class='flag-5'>從</b><b class='flag-5'>入門</b>到精通等資料

    Python入門到精通背記手冊

    電子發(fā)燒友網(wǎng)站提供《Python入門到精通背記手冊.pdf》資料免費下載
    發(fā)表于 03-28 17:43 ?108次下載

    為什么BOOT_CFG1_1BOOT_CFG1_6為L時不能寫入?

    和“MIMXRT1060-EVKB Board User Manual”使用以下設置進行編寫,但發(fā)生了錯誤。 BOOT_MODE0:H BOOT_MODE1:L BOOT_CFG1_0:H
    發(fā)表于 03-28 08:11

    emmc boot-partition引導LS1043a遇到的疑問求解

    我們正在從 eMMC 啟動 LS1043a。 這也適用于 user 分區(qū)。 是否可以啟動分區(qū) 1boot0) 或啟動分區(qū) 2 (boot1) 啟動?如果是這樣,如何做到這一點?
    發(fā)表于 03-26 07:30