Spring Boot學(xué)習(xí)路線1

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