Spring簡介
Spring是一個輕量級Java開發框架,最早有Rod Johnson創建,目的是為了解決企業級應用開發的業務邏輯層和其他各層的耦合問題。它是一個分層的JavaSE/JavaEE full-stack(一站式)輕量級開源框架,為開發Java應用程序提供全面的基礎架構支持。Spring負責基礎架構,因此Java開發者可以專注於應用程序的開發。
Spring最根本的使命是解決企業級應用開發的複雜性,即簡化Java開發。
Spring可以做很多事情,它為企業級開發提供了豐富的功能,但是這些功能的底層都依賴於它的兩個核心特性,也就是依賴注入(dependency injection,DI)和麵向切面編程(aspect-oriented programming,AOP)。
為了降低Java開發的複雜性,Spring採取了以下4種關鍵策略:
- 基於POJO的輕量級和最小侵入性編程;
- 通過依賴注入和麵向接口實現松耦合;
- 基於切面和慣例進行聲明式編程;
- 通過切面和模板減少樣板式代碼。
Spring框架核心
Spring設計目標:Spring為開發者提供一個一站式輕量級應用開發平臺;
Spring設計理念:在JavaEE開發中,支持POJO和JavaBean開發方式,使應用面向接口開發,充分支持OO(面向對象)設計方法;Spring通過IoC容器實現對象耦合關係的管理,並實現依賴反轉,將對象之間的依賴關係交給IoC容器,實現解耦;
Spring框架的核心:IoC容器和AOP模塊。通過IoC容器管理POJO對象以及他們之間的耦合關係;通過AOP以動態非侵入的方式增強服務。
Spring的優缺點
優點
- 方便解耦,簡化開發
Spring就是一個大工廠,可以將所有對象的創建和依賴關係的維護,交給Spring管理。
- AOP編程的支持
Spring提供面向切面編程,可以方便的實現對程序進行權限攔截、運行監控等功能。
- 聲明式事務的支持
只需要通過配置就可以完成對事務的管理,而無需手動編程。
- 方便程序的測試
Spring對Junit4支持,可以通過註解方便的測試Spring程序。
- 方便集成各種優秀框架
Spring不排斥各種優秀的開源框架,其內部提供了對各種優秀框架的直接支持(如:Struts、Hibernate、MyBatis等)。
- 降低JavaEE API的使用難度
Spring對JavaEE開發中非常難用的一些API(JDBC、JavaMail、遠程調用等),都提供了封裝,使這些API應用難度大大降低。
缺點
- Spring明明一個很輕量級的框架,卻給人感覺大而全
- Spring依賴反射,反射影響性能
- 使用門檻升高,入門Spring需要較長時間
Spring的應用場景
應用場景:JavaEE企業應用開發,包括SSH、SSM等
Spring價值:
- Spring是非侵入式的框架,目標是使應用程序代碼對框架依賴最小化;
- Spring提供一個一致的編程模型,使應用直接使用POJO開發,與運行環境隔離開來;
- Spring推動應用設計風格向面向對象和麵向接口開發轉變,提高了代碼的重用性和可測試性;
閱讀更多 Java程序員聚集地 的文章