Spring框架是因爲軟件開發的複雜性而建立的。Spring使用的是基本的JavaBean來完成之前只可能由EJB完成的事情。然而,Spring的用途不單單限於服務器端的開發。從簡單性、可測試性和鬆耦合性角度而言,絕大部分Java應用均可以從Spring中受益。
**1.目的:解決企業應用開發的複雜性
2.功能:使用基本的JavaBean代替EJB,並提供了更多的企業應用功能
3.範圍:任何Java應用
Spring是一個輕量級控制反轉(IoC)和麪向切面(AOP)的容器框架**web
**Spring是一個分層的JavaSE/EE full-stack(一站式)輕量級開源框架.
Spring爲不一樣的層都提供的企業級解決方案:
web層:spring mvc
service層:spring
dao層:JDBCTemplate、Spring data jpa(Java Persistence API)
Spring的核心思想是IOC(控制反轉)和AOP(面向切面編程)**spring
**1.方便解耦,簡化開發(高內聚低耦合)
Spring就是一個大工廠(容器),用於建立對象(bean)和維護對象間的依賴關係.
2.AOP編程的支持
Spring提供面向切面編程,能夠方便的實現對程序進行權限攔截、運行監控等功能.
聲明式事務的支持,只須要經過配置就能夠完成對事務的管理,並且無需手動編程.
3.方便程序的測試
Spring對Junit4支持,能夠經過註解方便的測試Spring程序.
4.方便集成各類的優秀框架
5.下降JavaEE API的使用難度
Spring 對JavaEE開發中很是難用的一些API,都提供了封裝,使用這些API應用難度大大下降.**編程
**1.下降了組件之間的耦合性,實現了軟件各層之間的解耦.
2.可使用容器提供的衆多服務,如事務管理,消息服務等.
3.容器提供單利模式支持.
4.容器提供了AOP技術,利用它能夠很容易實現的一些攔截,如權限攔截,運行期監控等.
5.容器提供了AOP技術,利用它能夠很容易實現運行攔截,如權限攔截,運行期監控等.
6.spring對於主流的應用框架提供了很好的支持,例如mybatis等.
7.spring屬於低入侵設計
8.獨立各類應用服務器
9.spring的DI機制減低了業務對象替換的複雜性.
10.spring的高開放性,並不強制應用於徹底依賴於它,開發者能夠自由選擇spring的部分或者所有.**服務器
使用了大量的反射機制,反射機制很是佔用內存。mybatis