javaweb項(xiàng)目幾乎已經(jīng)離不開spring框架了,spring 是一個(gè)典型的分層架構(gòu)框架,它包含一系列的功能并被分為多個(gè)功能模塊,springboot對(duì)spring框架又做了一層封裝,以至于很多人對(duì)原來的spring框架越來越不了解。
????????要談Spring的歷史,就要先談J2EE。J2EE應(yīng)用程序的廣泛實(shí)現(xiàn)是在1999年和2000年開始的,它的出現(xiàn)帶來了諸如事務(wù)管理之類的核心中間層概念的標(biāo)準(zhǔn)化,但是在實(shí)踐中并沒有獲得絕對(duì)的成功,因?yàn)殚_發(fā)效率,開發(fā)難度和實(shí)際的性能都令人失望。
曾經(jīng)使用過EJB開發(fā)JAVA EE應(yīng)用的人,一定知道,在EJB開始的學(xué)習(xí)和應(yīng)用非常的艱苦,很多東西都不能一下子就很容易的理解。EJB要嚴(yán)格地實(shí)現(xiàn)各種不同類型的接口,類似的或者重復(fù)的代碼大量存在。而配置也是復(fù)雜和單調(diào),同樣使用JNDI進(jìn)行對(duì)象查找的代碼也是單調(diào)而枯燥。雖然有一些開發(fā)工作隨著xdoclet的出現(xiàn),而有所緩解,但是學(xué)習(xí)EJB的高昂代價(jià),和極低的開發(fā)效率,極高的資源消耗,都造成了EJB的使用困難。而Spring出現(xiàn)的初衷就是為了解決類似的這些問題。
????????這一篇就來梳理梳理spring框架。對(duì)于spring框架我們不能僅僅知道AOP和IOC,其實(shí)spring框架一共由7部分組成。
分別是spring core、spring dao、 spring context、 spring? aop 、spring orm 、spring? web 和spring web mvc。
spring core核心容器
這是Spring框架最基礎(chǔ)的部分,它提供了依賴注入(DependencyInjection)特征來實(shí)現(xiàn)容器對(duì)Bean的管理。這里最基本的概念是BeanFactory,它是任何Spring應(yīng)用的核心。BeanFactory是工廠模式的一個(gè)實(shí)現(xiàn),它使用IoC將應(yīng)用配置和依賴說明從實(shí)際的應(yīng)用代碼中分離出來。
Spring context 上下文
Spring 上下文是一個(gè)配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企業(yè)服務(wù),例如 JNDI、EJB、電子郵件、國際化、校驗(yàn)和調(diào)度功能。
Spring AOP面向切面編程
通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對(duì)象支持 AOP。Spring AOP 模塊為基于 Spring 的應(yīng)用程序中的對(duì)象提供了事務(wù)管理服務(wù)。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。
Spring DAO
JDBC DAO 抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來管理異常處理和不同數(shù)據(jù)庫供應(yīng)商拋出的錯(cuò)誤消息。異常層次結(jié)構(gòu)簡化了錯(cuò)誤處理,并且極大地降低了需要編寫的異常代碼數(shù)量。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結(jié)構(gòu)。
Spring ORM
Spring 框架插入了若干個(gè) ORM 框架,從而提供了 ORM 的對(duì)象關(guān)系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務(wù)和 DAO 異常層次結(jié)構(gòu)。
Spring Web 模塊
Web 上下文模塊建立在應(yīng)用程序上下文模塊之上,為基于 Web 的應(yīng)用程序提供了上下文。所以,Spring 框架支持與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分請(qǐng)求以及將請(qǐng)求參數(shù)綁定到域?qū)ο蟮墓ぷ鳌?br>Spring MVC
MVC 框架是一個(gè)全功能的構(gòu)建 Web 應(yīng)用程序的 MVC 實(shí)現(xiàn)。通過策略接口,MVC 框架變成為高度可配置的,MVC 容納了大量視圖技術(shù),其中包括 JSP、Velocity、Tiles、iText 和 POI。
Spring的初衷:
1、JAVA EE開發(fā)應(yīng)該更加簡單。
2、使用接口而不是使用類,是更好的編程習(xí)慣。Spring將使用接口的復(fù)雜度幾乎降低到了零。
3、為JavaBean提供了一個(gè)更好的應(yīng)用配置框架。
4、更多地強(qiáng)調(diào)面向?qū)ο蟮脑O(shè)計(jì),而不是現(xiàn)行的技術(shù)如JAVA EE。
5、盡量減少不必要的異常捕捉。
6、使應(yīng)用程序更加容易測試。
Spring的目標(biāo):
1、可以令人方便愉快的使用Spring。
2、應(yīng)用程序代碼并不依賴于Spring APIs。
3、Spring不和現(xiàn)有的解決方案競爭,而是致力于將它們?nèi)诤显谝黄稹?/p>
Spring的基本組成:
1、最完善的輕量級(jí)核心框架。
2、通用的事務(wù)管理抽象層。
3、JDBC抽象層。
4、集成了Toplink, Hibernate, JDO, and iBATIS SQL Maps。
5、AOP功能。
6、靈活的MVC Web應(yīng)用框架。
spring生態(tài):文章來源:http://www.zghlxwxcb.cn/news/detail-419088.html
Spring 是一個(gè)基礎(chǔ)框架,隨著它的廣泛應(yīng)用又衍生出了很多其他框架,它們都有各自的功能,又能與 Spring 非常方便地集成,集成后能滿足項(xiàng)目的各種業(yè)務(wù)需求,這極大提高了項(xiàng)目開發(fā)的效率。
常見的框架如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-419088.html
- Spring Boot:能夠讓開發(fā)者輕松地創(chuàng)建獨(dú)立的基于 Spring 的生產(chǎn)級(jí)應(yīng)用程序的框架。
- Spring Cloud:幫開發(fā)者快速構(gòu)建一個(gè)分布式系統(tǒng)的框架。
- Spring Data:為數(shù)據(jù)庫的訪問提供一個(gè)一致的基于 Spring 的編程模型,保留底層數(shù)據(jù)存儲(chǔ)的框架。
- Spring Cloud Data Flow:面向云計(jì)算和 Kubernetes 的基于微服務(wù)的流和數(shù)據(jù)批處理處理框架。
- Spring Security:一個(gè)功能強(qiáng)大且高度可定制的身份驗(yàn)證和訪問控制的安全框架。
- Spring Session:在 Web 應(yīng)用中管理用戶會(huì)話信息的框架。
- Spring AMQP:基于 Spring 框架的 AMQP 消息解決方案,該框架為消息的發(fā)送和接收提供一個(gè)模板方法。
- Spring Web Service:該框架用于創(chuàng)建文檔驅(qū)動(dòng)的 Web 服務(wù)。
到了這里,關(guān)于JAVA開發(fā)(Spring框架詳解)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!