1. 程式人生 > >spring-學習(一)

spring-學習(一)

相關 細節 mvc 客戶端和服務器 web應用 利用 例如 常見 註入

概述

Spring 是最受歡迎的企業級 Java 應用程序開發框架。主要用來在java EE平臺上開發web應用。

好處

spring可以使開發人員使用pojos開發企業級的應用程序。

spring是有組織的。有大量的包和類,你只需要使用你需要的即可。

spring不會讓你重復工作,並且真正利用了一些現有的技術,比如:幾個ORM框架,日誌框架,JEE,Quertz和JDK計時器,其他視圖技術。

spring讓測試變得更加容易,因為environment-dependent代碼被放進這個框架中,使用javaBean-style POJOs,使依賴註入註入測試數據時變得更加容易。

spring的web框架是最受歡迎的。

spring提供一系列異常API,把特定技術的異常翻譯成一致的(如JDBC,hibernate ,或JDO拋出的異常)

spring是輕量級的。有利於在內存和CPU資源有限的計算機上開發和部署。

spring提供了事物管理界面,可以是本地事物(單一的數據庫)或者是全局事物(如JTA,多個數據庫)

控制反轉(IOC)

spring最認同的技術是控制反轉的依賴註入(DI),控制反轉(IOC)是一個通用的概念,依賴註入僅僅是控制反轉的一個具體的例子。此為spring的核心。

例如:A依賴B,而將B通過控制反轉(IOC)註入到A中。

面向方面的程序設計(AOP)

spring框架的一個關鍵組件是面向方面的程序設計(AOP)框架。一個程序中跨越多個點的功能被稱為橫切關註點。常見的關於方面的例子,比如日誌記錄。聲明性事物,安全性和緩存等等。此為spring的核心。

並且提高了面向方面的程序設計實現,允許你定義攔截器方法和切入點,可以實現將應該被分開的代碼幹凈的分離開來。

結構體系

spring有可能成為所有企業程序的一站式服務點,spring是模塊化的,允許你挑選和選擇適用你的模塊。、

核心容器

核心容器有核心、Bean,上下文和表達式語言模塊組成;

核心模塊提供了框架的基本組成部分,包括IOC和AOP

Bean模塊提供BeanFactory,它是一個工廠模式的復雜實現。

上下文模塊建立在由核心和Bean模塊提供的基礎上,它是訪問定義和配置的媒介。applicationContext接口是上下文模塊的重點。

表達式語言模塊在運行時提供了查詢和操作一個對象圖的強大的表達式語言。

數據訪問/集成

數據訪問/集成包括JDBC,ORM,OXM,JMS和事物處理模塊,

JDBC模塊提供了刪除冗余的JDBC相關編碼和JDBC抽象層。

ORM模塊為流行的對象關系映射API,包括JPA,JDO,hibernate和iBatis。提供了集成層。

OXM模塊提供了抽象層,支持JAXB,CASTOR,XMLBeans,JiBX和XStream的對象映射實現。

java消息服務JMS模塊包含生產和消費的信息的功能。

事物模塊為實現特殊接口的類及所有的POJO支持編程式和聲明式事物管理。

WEB

web層由web、web-mvc,web-socket和web-portlet組成

  • Web 模塊提供了基本的面向 web 的集成功能,例如多個文件上傳的功能和使用 servlet 監聽器和面向 web 應用程序的上下文來初始化 IoC 容器。

  • Web-MVC 模塊包含 Spring 的模型-視圖-控制器(MVC),實現了 web 應用程序。

  • Web-Socket 模塊為 WebSocket-based 提供了支持,而且在 web 應用程序中提供了客戶端和服務器端之間通信的兩種方式。

  • Web-Portlet 模塊提供了在 portlet 環境中實現 MVC,並且反映了 Web-Servlet 模塊的功能。

還有其他一些重要的模塊,像 AOP,Aspects,Instrumentation,Web 和測試模塊,它們的細節如下:

  • AOP 模塊提供了面向方面的編程實現,允許你定義方法攔截器和切入點對代碼進行幹凈地解耦,它實現了應該分離的功能。

  • Aspects 模塊提供了與 AspectJ 的集成,這是一個功能強大且成熟的面向切面編程(AOP)框架。

  • Instrumentation 模塊在一定的應用服務器中提供了類 instrumentation 的支持和類加載器的實現。

  • Messaging 模塊為 STOMP 提供了支持作為在應用程序中 WebSocket 子協議的使用。它也支持一個註解編程模型,它是為了選路和處理來自 WebSocket 客戶端的 STOMP 信息。

  • 測試模塊支持對具有 JUnit 或 TestNG 框架的 Spring 組件的測試。

spring-學習(一)