Spring Boot 是什么?
Spring Boot
是基于 Spring Framework
構建應用程序的框架,Spring Framework
是一個廣泛使用的用于構建基于 Java
的企業(yè)應用程序的開源框架。Spring Boot
旨在使創(chuàng)建獨立的、生產(chǎn)級別的 Spring
應用程序變得容易,您可以"只是運行"這些應用程序。
術語
Spring Core
是 Spring Framework
的基礎,為基于 Java
的應用程序提供了全面的編程和配置模型。這里是與 Spring Core
相關的一些關鍵術語和概念:
-
Bean:在
Spring
中,“bean”是由Spring
容器管理的Java
對象。通常使用配置元數(shù)據(jù)來定義 bean,可以在XML
、Java
注釋或Java
代碼中指定。 -
控制反轉(IoC):
Spring
的主要原則之一是控制反轉(IoC),這意味著Spring
容器負責管理 bean 的生命周期并注入其依賴項。 -
依賴注入(DI):
Spring
使用依賴注入(DI)來管理 bean 之間的依賴關系。在DI
中,對象的依賴項由容器提供,而不是對象自己創(chuàng)建或查找其自己的依賴項。 -
容器:
Spring
容器是Spring Framework
的核心部分,它創(chuàng)建和管理 bean 及其依賴項。 -
ApplicationContext:
ApplicationContext
是Spring
容器的實現(xiàn)。它負責加載和管理配置元數(shù)據(jù),并創(chuàng)建在該元數(shù)據(jù)中定義的 bean。 -
面向切面編程(AOP):
Spring
支持面向切面編程(AOP),允許您將橫切關注點(例如日志記錄或安全性)與應用程序的業(yè)務邏輯分離。 -
事件:
Spring
提供了一種事件模型,允許 bean 發(fā)送和接收事件。這用于將 bean 彼此解耦,使應用程序更松散耦合。 -
ApplicationEvent和監(jiān)聽器:
Spring
支持發(fā)布訂閱模型來處理事件,ApplicationEvent
定義事件對象,監(jiān)聽器是實現(xiàn)ApplicationListener
接口的類,監(jiān)聽特定事件并采取必要的操作。 -
數(shù)據(jù)訪問:
Spring
使用各種框架(如JDBC
、Hibernate
、JPA
)提供了一致的高級數(shù)據(jù)訪問抽象。 -
事務:
Spring
提供了一種靈活、一致且易于聲明式地使用不同底層技術(如JPA
、JDBC
和Hibernate
)管理事務的方法。 -
任務執(zhí)行和調度:
Spring
提供了TaskExecutor
和TaskScheduler
,提供了一種方便的方式來并發(fā)運行任務,在計劃的基礎上或異步運行。
架構
Spring Boot
采用分層架構,每個層次與其直接上層或下層(分層結構)通信。 Spring Boot
的四個層如下:
-
表現(xiàn)層:處理
HTTP
請求,將JSON
參數(shù)轉換為對象,并對請求進行身份驗證并將其傳輸?shù)綐I(yè)務層。 - 業(yè)務層:業(yè)務層處理所有業(yè)務邏輯。 它由服務類組成,并使用數(shù)據(jù)訪問層提供的服務。 它還執(zhí)行授權和驗證。
- 持久層:持久層包含所有存儲邏輯,并將業(yè)務對象從數(shù)據(jù)庫行翻譯成翻譯。
-
數(shù)據(jù)庫層:在數(shù)據(jù)庫層中執(zhí)行
CRUD
(創(chuàng)建,檢索,更新,刪除)操作。
為什么選 Spring Boot?
Spring Boot
提供了許多功能,使創(chuàng)建基于 Spring
的應用程序變得更加容易,包括:
- 嵌入式應用服務器
- 自動配置
- 預配置的啟動器
- 方便的打包和分發(fā)
- 通過內置的健康檢查端點和能夠自定義管理端點來方便監(jiān)控。
此外,它還內置了許多最佳實踐和公約,這減少了開發(fā)人員需要編寫的工作量和樣板代碼。
Spring
是一個開源框架,為現(xiàn)代基于 Java
的企業(yè)應用程序提供了全面的編程和配置模型。Spring
的核心模塊,也稱為“Spring Core
”模塊,是框架的核心,為依賴注入(DI
)和控制反轉(IoC
)提供了基本功能。除了依賴注入外,Spring Core
模塊還提供了其他幾個功能,例如:
- 靈活可擴展的驗證框架
- 類型轉換系統(tǒng)
- 一致的消息框架
配置
Spring
核心配置是配置 Spring
框架的過程,它涉及指定應用程序正常運行所需的各種配置細節(jié)。這可以包括設置 bean
、指定 bean
依賴項、配置面向方面編程(AOP
)方面等。配置可以通過 Java
代碼、XML
文件或使用代碼中的注釋來完成。
依賴注入
Spring Boot
使用 Spring
框架的控制反轉(IoC
)容器來管理對象及其依賴關系。IoC
容器負責創(chuàng)建對象、將它們連接起來并管理它們的生命周期。當創(chuàng)建一個對象時,它的依賴關系也會被創(chuàng)建并注入到該對象中。
Spring IOC
控制反轉(IoC
)是一種設計模式,通常與依賴注入(DI
)模式一起使用。 IoC
的基本思想是反轉程序的控制流,使得對象自己控制邏輯流程和其他對象的創(chuàng)建,而不是程序控制邏輯流程和對象的創(chuàng)建。
Spring
是一個流行的 Java
框架,使用 IoC
和 DI
提供更靈活,模塊化的軟件開發(fā)方法。 Spring IoC
容器負責管理 Spring
應用程序中對象的創(chuàng)建和配置。
Spring IoC
容器創(chuàng)建對象,將它們連接在一起,對它們進行配置,并管理它們從創(chuàng)建到銷毀的完整生命周期。這減輕了應用程序代碼實例化和配置對象的負擔,并允許應用程序代碼專注于業(yè)務邏輯而不是基礎設施問題。
Spring IoC
容器提供兩種配置對象的方法:
- 基于
XML
的配置 - 基于注釋的配置
在基于 XML
的配置中,您使用 XML
文件描述配置元數(shù)據(jù),容器創(chuàng)建對象并將它們連接在一起。
在基于注釋的配置中,您在 Java
源代碼中使用注釋描述配置元數(shù)據(jù),容器創(chuàng)建對象并將其連接在一起。
無論哪種方式,Spring IoC
容器都可以用于在 Spring
應用程序中創(chuàng)建,管理和連接對象,使用各種不同的策略,包括構造函數(shù)注入,設置器注入和接口注入。
總體而言,Spring IoC
容器提供了一個集中管理應用程序中對象的生命周期和配置的位置,使得開發(fā),測試和維護代碼更加容易。
Sprint AOP
Spring AOP
(面向切面編程)是 Spring
框架的一個特性,允許開發(fā)人員定義跨多個類的某些行為(即“方面”),例如日志記錄或事務管理。這些行為被稱為“通知”,可以應用于應用程序中的特定“連接點”(即程序執(zhí)行中的點),使用“切入點”確定應該應用通知的位置。
Spring AOP
允許開發(fā)人員將這些橫切關注點的實現(xiàn)與應用程序的業(yè)務邏輯分開,使代碼更模塊化且更易于理解。這也可以使應用程序更加靈活,因為可以將相同的通知應用于代碼的不同部分,而無需復制通知本身的代碼。
Spring MVC
Spring MVC
是一個用于在 Java
中構建Web應用程序的框架。它是 Spring Framework
的一部分,后者是構建 Java
應用程序的更大生態(tài)系統(tǒng)。Spring MVC
建立在 Model-View-Controller
(MVC
)設計模式之上,有助于將應用程序的關注點分為三個不同的組件:模型、視圖和控制器。
Spring MVC
提供了一種強大而靈活的構建Web應用程序的方式,并與 Spring
生態(tài)系統(tǒng)的其他部分(例如 Spring Security
用于身份驗證和授權,以及 Spring Data
用于數(shù)據(jù)訪問)很好地集成。
注解
Spring Boot
的一個關鍵特性是使用注解來配置應用程序的各個方面并啟用某些功能。
Spring Boot
中最常用的注解包括:
@SpringBootApplication
@RestController
@Autowired
@Value
@Enable
@Configuration
@Bean
這些只是 Spring Boot
中可用的眾多注解的幾個示例。 還有許多其他注解可用于配置應用程序的各個方面,例如安全性、緩存和數(shù)據(jù)訪問。
Spring Bean Scope
在 Spring
框架中,Bean
是由 Spring IoC
容器實例化、組裝和管理的對象。Spring
容器的一個關鍵特性是它能夠管理 Bean
的生命周期,包括根據(jù)需要創(chuàng)建、配置和銷毀 Bean
。容器控制 Bean
生命周期的一種方式是指定其作用域。
Bean
的作用域確定了 Bean
在容器內和應用程序中其他對象中的生命周期和可見性。Spring
提供了多種不同的 Bean
作用域,包括:
- singleton:這是Bean的默認作用域。單例Bean只由容器實例化一次,并由請求它的所有對象共享.
- prototype:這個作用域意味著容器每次請求時都創(chuàng)建一個Bean的新實例.
- request:這個作用域僅適用于Web應用程序,表示容器為每個HTTP請求創(chuàng)建一個Bean的新實例.
- session:類似于請求作用域,但Bean的實例是為每個HTTP會話創(chuàng)建的.
- application:這個作用域是用于全局應用程序級別的數(shù)據(jù),只在支持Web的Spring ApplicationContext中有效.
- websocket:這個作用域是用于全局WebSocket級別的數(shù)據(jù),也只在支持Web的Spring ApplicationContext中有效.
可以使用Bean元素的scope
屬性在配置文件中指定Bean的作用域.
選擇正確的Bean作用域非常重要,因為它可能會影響應用程序的行為和性能.
最后
為了方便其他設備和平臺的小伙伴觀看往期文章:
微信公眾號搜索:Let us Coding
,關注后即可獲取最新文章推送文章來源:http://www.zghlxwxcb.cn/news/detail-615665.html
看完如果覺得有幫助,歡迎 點贊、收藏、關注文章來源地址http://www.zghlxwxcb.cn/news/detail-615665.html
到了這里,關于Spring Boot學習路線1的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!