文章目錄
Spring概念介紹
一、簡單介紹
二、Spring版本情況
三、Spring優勢
1、友善解耦,簡化開發
2、AOP切面程式設計
3、聲明式事務
4、整合JUNIT,友善測試
5、友善整合各種優秀的架構
6、豐富的功能封裝
7、規範的源碼學習樣本
四、Spring的體系結構
1、 Data Access/Integration(資料通路/內建)
2、Web 子產品
3、Core Container(核心容器)
4、 其他子產品
Spring概念介紹
一、簡單介紹
Spring是分層的全棧式的輕量級開發架構,以IOC和AOP為核心
官網:Spring | Home
二、Spring版本情況
三、Spring優勢
1、友善解耦,簡化開發
Spring通過容器,将對象的建立從代碼中剝離出來,交給Spring控制,避免直接編碼造成子產品之間的耦合度高,使用者也不必自己編碼處理對象的單例和多例控制,主要關注接口功能即可,不用關注具體使用哪個實作類和實作細節問題
2、AOP切面程式設計
AOP切面程式設計是程式設計的一種概念,Spring對該概念實作的比較好,通過切面程式設計我們可以在不修改原有代碼的情況下實作功能的增加,通常用于 事務控制,日志記錄,性能檢測,權限控制等等
3、聲明式事務
事務的控制可以托管給Spring,我們通過注解或者配置檔案聲明事務的處理方式即可,不用我們自己去編碼處理
4、整合JUNIT,友善測試
spring整合JUNIT單元測試,對于項目的功能都可以進行輕松快速的測試,便于我們調試程式
5、友善整合各種優秀的架構
SSM> Spring+SpringMVC +MyBatis
SSH> Spring+Hibernate +Strust
各種其他架構
6、豐富的功能封裝
spring對JAVAEE(JDBC ,JAVAMail,)都進行了一系列的封裝,簡化我們對于API的使用,提高程式的開發效率
7、規範的源碼學習樣本
spring的源碼設計巧妙,結構清晰,大量使用了設計模式,是java代碼規範編寫的典範,也是進階程式員面試中經常會問到的源碼
四、Spring的體系結構
1、 Data Access/Integration(資料通路/內建)
資料通路/內建層包括 JDBC、ORM、OXM、JMS 和 Transactions 子產品,具體介紹如下。
- JDBC 子產品:提供了一個 JDBC 的抽象層,大幅度減少了在開發過程中對資料庫操作的編碼。
- ORM 子產品:對流行的對象關系映射 API,包括 JPA、JDO、Hibernate和 iBatis 提供了的內建層。
- OXM 子產品:提供了一個支援對象/XML 映射的抽象層實作,如 JAXB、Castor、XMLBeans、JiBX 和 XStream。
- JMS 子產品:指Java消息服務,包含的功能為生産和消費的資訊。
- Transactions 事務子產品:支援程式設計和聲明式事務管理實作特殊接口類,并為所有的 POJO。
2、Web 子產品
- Web 子產品:提供了基本的 Web 開發內建特性,例如多檔案上傳功能、使用的 Servlet 監聽器的 IoC 容器初始化以及 Web 應用上下文。
- Servlet子產品:包括 Spring 模型—視圖—控制器(MVC)實作 Web 應用程式。
- Struts 子產品:包含支援類内的 Spring 應用程式,內建了經典的 Struts Web 層。
- Portlet 子產品:提供了在 Portlet 環境中使用 MV C實作,類似 Web-Servlet 子產品的功能。
3、Core Container(核心容器)
- Beans 子產品:提供了 BeanFactory,是工廠模式的經典實作,Spring 将管理對象稱為 Bean。
- Core 核心子產品:提供了 Spring 架構的基本組成部分,包括 IoC 和 DI 功能。
- Context 上下文子產品:建立在核心和 Beans 子產品的基礎之上,它是通路定義和配置任何對象的媒介。ApplicationContext 接口是上下文子產品的焦點。
- Expression Language 子產品:是運作時查詢和操作對象圖的強大的表達式語言。
4、 其他子產品
- AOP 子產品:提供了面向切面程式設計實作,允許定義方法攔截器和切入點,将代碼按照功能進行分離,以降低耦合性。
- Aspects 子產品:提供與 AspectJ 的內建,是一個功能強大且成熟的面向切面程式設計(AOP)架構。
- Instrumentation 子產品:提供了類工具的支援和類加載器的實作,可以在特定的應用伺服器中使用。
- Test 子產品:支援 Spring 元件,使用 JUnit 或 TestNG 架構的測試。
- 📢歡迎點贊 👍 收藏 ⭐留言 📝 如有錯誤敬請指正!
- 📢本文由 Lansonli 原創
- 📢停下休息的時候不要忘了别人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活✨