spring 學習總結(一)

1、spring概述

一、spring 是什麼?

  Spring是一個開放源代碼的設計層面框架,他解決的是業務邏輯層和其餘各層的鬆耦合問題,所以它將面向接口的編程思想貫穿整個系統應用。Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson建立。簡單來講,Spring是一個分層的JavaSE/EE full-stack(一站式)輕量級開源框架。(百度)java

二、spring 的目的是什麼?

  解決企業應用開發的複雜性,簡化企業級應用程序開發。web

三、spring 能作什麼?

一、能幫咱們來建立對象及管理這些對象之間的依賴關係。(IOC 反轉控制 和 DI 依賴注入spring

二、可以將那些與業務無關,卻爲業務模塊所共同調用的邏輯或責任(例如事務處理、日誌管理、權限控制等)封裝起來。減小系統的重複代碼,下降模塊間的耦合度,並有利於將來的可拓展性和可維護性。(AOP 面向切面編程數據庫

三、Spring能很是簡單的幫咱們管理數據庫事務編程

四、Spring的ORM和DAO提供了與第三方持久層框架的良好整合,並簡化了底層的數據庫訪問。設計模式

五、Spring提供與第三方Web(如Struts、JSF)框架無縫集成,本身也提供了一套Spring MVC框架,來方便web層搭建。數組

六、Spring能方便的與Java EE(如Java Mail、任務調度)整合,與更多技術整合(好比緩存框架)。緩存

小結:Spring能幫助咱們簡化應用程序開發,幫助咱們建立和組裝對象,爲咱們管理事務,簡單的MVC框架,能夠把Spring看做是一個超級粘合平臺,能把不少技術整合在一塊兒,造成一個總體,使系統結構更優良、性能更出衆,從而加速咱們程序開發。安全

2、spring 的優勢

一、輕量級:低侵入式設計,代碼污染極低。架構

二、IOC 和 DI:下降了業務對象替換的複雜性,提升了組件之間的解耦。

三、AOP:Spring的AOP支持容許將一些通用任務如安全、事務、日誌等進行集中式管理,從而提供了更好的複用。

四、簡單的數據庫事務管理:Spring支持可插入的事務管理支持,並且無需JEE環境支持,經過Spring管理事務能夠把咱們從事務管理中解放出來來專一業務邏輯。

五、JDBC抽象及ORM框架支持:Spring的ORM和DAO提供了與第三方持久層框架的良好整合,並簡化了底層的數據庫訪問

六、靈活的Web層支持:Spring自己提供一套很是強大的MVC框架,並且能夠很是容易的與第三方MVC框架集成,好比Struts等。

七、簡化各類技術集成:提供對Java Mail、任務調度、JMX、JMS、JNDI、EJB、動態語言、遠程訪問、Web Service等的集成。

八、Spring並不強制應用徹底依賴於Spring,開發者可自由選用Spring框架的部分或所有

3、spring基礎

一、spring 架構圖

  Spring 框架的 7 個模塊:

 

 

核心容器:包括Core、Beans、Context、EL模塊。

Core模塊:封裝了框架依賴的最底層部分,包括資源訪問、類型轉換及一些經常使用工具類。

Beans模塊:提供了框架的基礎部分,包括反轉控制和依賴注入。其中Bean Factory是容器核心,本質是「工廠設計模式」的實現,並且無需編程實現「單例設計模式」,單例徹底由容器控制,並且提倡面向接口編程,而非面向實現編程;全部應用程序對象及對象間關係由框架管理,從而真正把你從程序邏輯中把維護對象之間的依賴關係提取出來,全部這些依賴關係都由BeanFactory來維護。

●Context模塊:以Core和Beans爲基礎,集成Beans模塊功能並添加資源綁定、數據驗證、國際化Java EE支持、容器生命週期、事件傳播等;核心接口是ApplicationContext。

●EL模塊:提供強大的表達式語言支持,支持訪問和修改屬性值,方法調用,支持訪問及修改數組、容器和索引器,命名變量,支持算數和邏輯運算,支持從Spring 容器獲取Bean,它也支持列表投影、選擇和通常的列表聚合等。

 

AOP、Aspects模塊:

AOP模塊:Spring AOP模塊提供了符合 AOP Alliance規範的面向方面的編程(aspect-oriented programming)實現,提供好比日誌記錄、權限控制、性能統計等通用功能和業務邏輯分離的技術,而且能動態的把這些功能添加到須要的代碼中;這樣各專其職,下降業務邏輯和通用功能的耦合。

Aspects模塊:提供了對AspectJ的集成,AspectJ提供了比Spring ASP更強大的功能。

 

數據訪問/集成模塊:該模塊包括了JDBC、ORM、OXM、JMS和事務管理。

●事務模塊:該模塊用於Spring管理事務,只要是Spring管理對象都能獲得Spring管理事務的好處,無需在代碼中進行事務控制了,並且支持編程和聲明性的事物管理。

●JDBC模塊:提供了一個JBDC的樣例模板,使用這些模板能消除傳統冗長的JDBC編碼還有必須的事務控制,並且能享受到Spring管理事務的好處。

●ORM模塊:提供與流行的「對象-關係」映射框架的無縫集成,包括Hibernate、JPA、Ibatiss等。並且可使用Spring事務管理,無需額外控制事務。

●OXM模塊:提供了一個對Object/XML映射實現,將java對象映射成XML數據,或者將XML數據映射成java對象,Object/XML映射實現包括JAXB、Castor、XMLBeans和XStream。

●JMS模塊:用於JMS(Java Messaging Service),提供一套 「消息生產者、消息消費者」模板用於更加簡單的使用JMS,JMS用於用於在兩個應用程序之間,或分佈式系統中發送消息,進行異步通訊。

●Web/Remoting模塊:Web/Remoting模塊包含了Web、Web-Servlet、Web-Struts、Web-Porlet模塊。

●Web模塊:提供了基礎的web功能。例如多文件上傳、集成IoC容器、遠程過程訪問(RMI、Hessian、Burlap)以及Web Service支持,並提供一個RestTemplate類來提供方便的Restful services訪問。

●Web-Servlet模塊:提供了一個Spring MVC Web框架實現。Spring MVC框架提供了基於註解的請求資源注入、更簡單的數據綁定、數據驗證等及一套很是易用的JSP標籤,徹底無縫與Spring其餘技術協做。

●Web-Struts模塊:提供了與Struts無縫集成,Struts1.x 和Struts2.x都支持

 

Test模塊: Spring支持Junit和TestNG測試框架,並且還額外提供了一些基於Spring的測試功能,好比在測試Web框架時,模擬Http請求的功能。

相關文章
相關標籤/搜索