更新時(shí)間:2023-09-21 來(lái)源:黑馬程序員 瀏覽量:
Spring是一個(gè)主流的Java Web框架,該框架是一個(gè)輕量級(jí)的應(yīng)用框架,具有很高的凝聚力和吸引力。Spring框架因其強(qiáng)大的功能以及卓越的性能而受到眾多開(kāi)發(fā)人員的喜愛(ài)。
Spring是分層的JavaSE/EE full-stack輕量級(jí)開(kāi)源框架,以IoC(Inverse of Control,控制反轉(zhuǎn))和AOP(Aspect Oriented Programming,面向切面編程)為核心,使用基本的JavaBean完成以前只可能由EJB完成的工作,取代了EJB臃腫和低效的開(kāi)發(fā)模式。
Spring框架采用分層架構(gòu)、根據(jù)不同的功能被劃分成了多個(gè)模塊、這些模塊大體可分為Data Access/Integration、Web、AOP、Aspects、Instrumentation、Core Container和Test,如圖28-1所示。
圖28-1 Spring的體系結(jié)構(gòu)
圖28-1中包含了Spring框架的所有模塊,這些模塊可以滿足一切企業(yè)級(jí)應(yīng)用開(kāi)發(fā)的要求,在開(kāi)發(fā)過(guò)程中可以根據(jù)需求有選擇性地使用所需要的模塊。
在實(shí)際開(kāi)發(fā)中,通常服務(wù)器采用三層體系結(jié)構(gòu),分別為表現(xiàn)層(web)、業(yè)務(wù)邏輯層(service)、持久層(dao)。Spring對(duì)每一層都提供了技術(shù)支持,在表現(xiàn)層提供了與Struts2框架的整合,在業(yè)務(wù)邏輯層可以管理事務(wù)和記錄日志等,在持久層可以整合Hibernate和JdbcTemplate等技術(shù)。從設(shè)計(jì)上看,Spring框架給予了Java程序員更高的自由度,對(duì)業(yè)界的常見(jiàn)問(wèn)題也提供了良好的解決方案,因此,在開(kāi)源社區(qū)受到了廣泛的歡迎,并且被大部分公司作為Java項(xiàng)目開(kāi)發(fā)首選框架。
Spring具有簡(jiǎn)單、可測(cè)試和松耦合等特點(diǎn),不僅可以用于服務(wù)器端的開(kāi)發(fā),也可以應(yīng)用于任何Java應(yīng)用的開(kāi)發(fā)中。
Spring就是一個(gè)大工廠,可以將所有對(duì)象的創(chuàng)建和依賴(lài)關(guān)系的維護(hù)交給Spring管理。
Spring不排斥各種優(yōu)秀的開(kāi)源框架,其內(nèi)部提供了對(duì)各種優(yōu)秀框架(如Struts2、Hibernate、MyBatis等)的直接支持。
Spring對(duì)Java EE開(kāi)發(fā)中非常難用的一些API(JDBC、JavaMail、遠(yuǎn)程調(diào)用等)都提供了封裝,使這些API應(yīng)用的難度大大降低。
Spring支持JUnit4,可以通過(guò)注解方便地測(cè)試Spring程序。
Spring提供面向切面編程,可以方便地實(shí)現(xiàn)對(duì)程序進(jìn)行權(quán)限攔截和運(yùn)行監(jiān)控等功能。
只需要通過(guò)配置就可以完成對(duì)事務(wù)的管理,而無(wú)須手動(dòng)編程。