網(wǎng)站推廣商品怎么做效果最好奇葩網(wǎng)站100個(gè)
什么是Spring?
Spring翻譯過來就是春天的意思,字面意思,冠以Spring的意思就是想表示使用這個(gè)框架,代表程序員的春天來了,實(shí)際上就是讓開發(fā)更加簡單方便,實(shí)際上Spring確實(shí)做到了。
官網(wǎng)地址:https://spring.io/
Spring 是最受歡迎的企業(yè)級(jí) Java 應(yīng)用程序開發(fā)框架,數(shù)以百萬的來自世界各地的開發(fā)人員使用。Spring 框架來創(chuàng)建性能好、易于測(cè)試、可重用的代碼。也是一個(gè)開源的 Java 平臺(tái),它最初是由 Rod Johnson 編寫的,并且于 2003 年 6 月首次在 Apache 2.0 許可下發(fā)布。Spring 是輕量級(jí)的框架,其基礎(chǔ)版本只有 2 MB 左右的大小。
Spring 框架的核心特性是可以用于開發(fā)任何 Java 應(yīng)用程序,但是在 Java EE 平臺(tái)上構(gòu)建 web 應(yīng)用程序是需要擴(kuò)展的。 Spring 框架的目標(biāo)是使 J2EE 開發(fā)變得更容易使用,通過啟用基于 POJO編程模型來促進(jìn)良好的編程實(shí)踐。
Spring 家族
項(xiàng)目列表:https://spring.io/projects
Spring Framework
Spring 基礎(chǔ)框架,可以視為 Spring 基礎(chǔ)設(shè)施,基本上任何其他 Spring 項(xiàng)目都是以 Spring Framework為基礎(chǔ)的。包括SpringBoot,SpringCloud等等。
Spring Framework特性
數(shù)據(jù)訪問/集成(Data Access/Integration):
- JDBC: 提供了Java數(shù)據(jù)庫連接,簡化了數(shù)據(jù)庫操作。
- ORM: 對(duì)象關(guān)系映射,支持如Hibernate這樣的ORM工具。
- OXM: 對(duì)象XML映射,用于將對(duì)象與XML數(shù)據(jù)之間進(jìn)行轉(zhuǎn)換。
- JMS: Java消息服務(wù),用于處理消息。
- 事務(wù)(Transactions): 提供了聲明式和編程式的事務(wù)管理。
網(wǎng)絡(luò)(Web):
- WebSocket: 提供了WebSocket通信功能。
- Servlet: 支持Servlet API。
- Web: 包含多種Web開發(fā)的支持,如Spring MVC。
- Portlet: 為Portlet環(huán)境提供了MVC實(shí)現(xiàn)。
面向切面編程(AOP):
- AOP: 提供了面向切面編程的實(shí)現(xiàn),允許定義方法攔截器和切點(diǎn),以實(shí)現(xiàn)諸如事務(wù)管理、安全性等橫切關(guān)注點(diǎn)。
- Aspects: 與AOP相關(guān)的一些支持,如與AspectJ的集成。
儀器化(Instrumentation): 提供了類儀器化和資源管理的功能。
消息(Messaging): 提供了消息傳遞的支持,包括使用消息隊(duì)列。
核心容器(Core Container):
- Beans: 提供了Bean的定義、創(chuàng)建和管理。
- Core: Spring框架的核心部分,包括IoC和依賴注入功能。
- Context: 提供了框架式的對(duì)象訪問,如國際化、事件傳播等。
- SpEL: Spring表達(dá)式語言,用于查詢和操作對(duì)象圖。
測(cè)試(Test): 提供了測(cè)試Spring組件的支持,如模擬對(duì)象和測(cè)試框架集成。
特性
- 非侵入式:使用 Spring Framework 開發(fā)應(yīng)用程序時(shí),Spring 對(duì)應(yīng)用程序本身的結(jié)構(gòu)影響非常小。對(duì)領(lǐng)域模型可以做到零污染;對(duì)功能性組件也只需要使用幾個(gè)簡單的注解進(jìn)行標(biāo)記,完全不會(huì)破壞原有結(jié)構(gòu),反而能將組件結(jié)構(gòu)進(jìn)一步簡化。這就使得基于 Spring Framework 開發(fā)應(yīng)用程序時(shí)結(jié)構(gòu)清晰、簡潔優(yōu)雅。
- 控制反轉(zhuǎn):IOC——Inversion of Control,翻轉(zhuǎn)資源獲取方向。把自己創(chuàng)建資源、向環(huán)境索取資源,變成環(huán)境將資源準(zhǔn)備好,我們享受資源注入。
- 面向切面編程:AOP——Aspect Oriented Programming,在不修改源代碼的基礎(chǔ)上增強(qiáng)代碼功能。
- 容器:Spring IOC 是一個(gè)容器,因?yàn)樗⑶夜芾斫M件對(duì)象的生命周期。組件享受到了容器化的管理,替程序員屏蔽了組件創(chuàng)建過程中的大量細(xì)節(jié),極大的降低了使用門檻,大幅度提高了開發(fā)效率。
- 組件化:Spring 實(shí)現(xiàn)了使用簡單的組件配置組合成一個(gè)復(fù)雜的應(yīng)用。在 Spring 中可以使用 XML和 Java 注解組合這些對(duì)象。這使得我們可以基于一個(gè)個(gè)功能明確、邊界清晰的組件有條不紊的搭建超大型復(fù)雜應(yīng)用系統(tǒng)。
- 聲明式:很多以前需要編寫代碼才能實(shí)現(xiàn)的功能,現(xiàn)在只需要聲明需求即可由框架代為實(shí)現(xiàn)。
- 一站式:在 IOC 和 AOP 的基礎(chǔ)上可以整合各種企業(yè)應(yīng)用的開源框架和優(yōu)秀的第三方類庫。而且Spring 旗下的項(xiàng)目已經(jīng)覆蓋了廣泛領(lǐng)域,很多方面的功能性需求可以在 Spring Framework 的基礎(chǔ)上全部使用 Spring 來實(shí)現(xiàn)。
Spring Framework五大功能模塊
功能模塊 | 功能介紹 |
---|---|
Core Container | 核心容器,在 Spring 環(huán)境下使用任何功能都必須基于 IOC 容器。 |
AOP&Aspects | 面向切面編程 |
Testing | 提供了對(duì) junit 或 TestNG 測(cè)試框架的整合。 |
Data Access/Integration | 提供了對(duì)數(shù)據(jù)訪問/集成的功能。 |
Spring MVC | 提供了面向Web應(yīng)用程序的集成功能。 |
Spring框架的主要模塊包括:
- Spring Core:提供核心的依賴注入(DI)功能。
- Spring AOP:支持面向切面編程(AOP),允許在不修改代碼的情況下添加行為。
- Spring MVC:用于構(gòu)建基于Web的應(yīng)用程序,提供了強(qiáng)大的MVC架構(gòu)。
- Spring Data:簡化了數(shù)據(jù)訪問層的開發(fā),支持多種數(shù)據(jù)存儲(chǔ)技術(shù)。
- Spring Security:提供全面的安全功能,包括認(rèn)證和授權(quán)。
- Spring Boot:簡化了Spring應(yīng)用程序的配置和部署,提供了開箱即用的默認(rèn)設(shè)置。
特性功能
- 依賴注入(DI):通過依賴注入,Spring可以自動(dòng)管理對(duì)象之間的依賴關(guān)系,減少了代碼的耦合度。
- 面向切面編程(AOP):允許開發(fā)者在不修改業(yè)務(wù)邏輯代碼的情況下,添加橫切關(guān)注點(diǎn)(如日志記錄、事務(wù)管理等)。
- 事務(wù)管理:Spring提供了聲明式事務(wù)管理,簡化了事務(wù)的處理。
- 數(shù)據(jù)訪問:Spring Data模塊支持多種數(shù)據(jù)存儲(chǔ)技術(shù)(如JPA、MongoDB、Redis等),簡化了數(shù)據(jù)訪問層的開發(fā)。
- 集成測(cè)試:Spring提供了強(qiáng)大的測(cè)試支持,允許開發(fā)者輕松編寫和運(yùn)行集成測(cè)試。
- 模塊化設(shè)計(jì):Spring框架是模塊化的,開發(fā)者可以根據(jù)需要選擇使用不同的模塊。
- Spring Boot:通過Spring Boot,開發(fā)者可以快速創(chuàng)建獨(dú)立的、生產(chǎn)級(jí)的Spring應(yīng)用程序,減少了配置的復(fù)雜性。
使用Spring的好處
- 簡化開發(fā):Spring的依賴注入和面向切面編程功能大大簡化了開發(fā)過程,使代碼更加簡潔和易于維護(hù)。
- 提高生產(chǎn)力:Spring Boot提供了開箱即用的默認(rèn)設(shè)置和自動(dòng)配置,顯著提高了開發(fā)效率。
- 可測(cè)試性:Spring框架提供了強(qiáng)大的測(cè)試支持,使得單元測(cè)試和集成測(cè)試更加容易。
- 靈活性和可擴(kuò)展性:Spring的模塊化設(shè)計(jì)和豐富的生態(tài)系統(tǒng)使得應(yīng)用程序可以靈活地?cái)U(kuò)展和集成各種第三方庫和服務(wù)。
- 社區(qū)支持:Spring擁有龐大的社區(qū)和豐富的文檔資源,開發(fā)者可以輕松找到解決方案和最佳實(shí)踐。
- 企業(yè)級(jí)功能:Spring提供了全面的企業(yè)級(jí)功能,如事務(wù)管理、安全、數(shù)據(jù)訪問等,滿足復(fù)雜業(yè)務(wù)需求。