Spring框架是什么?
Spring是為企業Java最流行的應用程序開發框架。數以百萬計的世界各地的開發人員使用Spring框架來創建高性能,易于測試的,可重用的代碼。
Spring框架是一個開源的Java平臺,它最初是由Rod Johnson編寫并在2003年6月在Apache2.0許可下首次發布。
Spring是輕量級的,當涉及到大小和透明度。 spring框架的基本版本是大約2MB。
Spring框架的核心功能可以在任何Java應用程序中使用,但也有擴展的Java EE平臺上構建Web應用程序。 Spring框架的目標,以使J2EE開發更容易使用,并且通過使基于POJO的編程模型,促進良好的編程習慣。
使用Spring框架的好處:
以下是一些使用Spring框架的極大的好處列表:
Spring 使開發人員使用POJO來開發企業級應用程序。僅使用POJO的好處是不需要EJB容器產品,如應用服務器,但必須只使用一個強大的servlet容器,如Tomcat 或某些商業產品的選擇。
Spring 被組織在一個模塊化的方式。雖然包和類的數量是巨大的,你只有擔心那些需要的,而其它的就忽略了。
Spring不重新發明輪子,而是真正利用了一些像一些ORM框架,日志框架,JEE,Quartz和JDK定時器,其他視圖技術的現有技術。
編寫測試Spring的應用程序很簡單,因為環境相關的代碼被移動到這個框架中。此外,通過使用JavaBean風格的POJO,它變得更容易使用依賴注入注入測試數據。
Spring web框架是一個設計良好的Web MVC框架,它提供了一個很好的替代Web框架,如Struts或其他過度設計或不太流行的Web框架。
Spring提供了一個方便的API平移技術特定的異常(通過JDBC,Hibernate,或者JDO拋出,例如)成一致,未經檢查的異常。
輕量級的IoC容器往往是輕量級的,尤其是相對EJB容器,例如。這有利于開發和有限的內存和CPU資源的計算機上部署應用程序。
Spring提供了一致的事務管理接口,可向下擴展到(使用一個單一的數據庫,例如)本地事務并擴展到全局事務(使用JTA,例如)。
依賴注入(DI):
Spring最有確定的技術是依賴注入控制反轉(DI)。控制反轉(IoC)是一個籠統的概念,它可以表現在許多不同的方式和依賴注入僅僅是控制反轉的一個具體的例子。
當編寫一個復雜的Java應用程序,應用程序類應該盡可能獨立其他Java類來增加重復使用這些類,并獨立于其他類別的測試它們,而這樣做單元測試的可能性。依賴注入有助于粘合這些類在一起,同時保持他們的獨立。
什么是依賴注入是什么呢?讓我們來看看這兩個詞分開。這里的依賴性部分轉化為兩個類之間的關聯。例如,A類是依賴B類,現在,讓我們來看看第二部分,注入。這一切都意味著,B類將由IOC注入到A類得到。
依賴注入可以將參數傳遞給構造函數的方式或使用后建設setter方法??發生。依賴注入是Spring框架的核心,所以會在一個單獨的章節,一個不錯的例子解釋這個概念。
面向切面編程(AOP):
Spring的一個關鍵組件是面向切面編程(AOP)框架。跨越多個點的應用程序的功能被稱為橫切關注點和這些橫切關注點是從應用程序的業務邏輯概念上區分開來。有方面的各種常見很好的例子包括日志記錄,聲明性事務,安全性和高速緩存等。
模塊化的OOP關鍵單元是類,而在AOP中模塊化的單元則是切面。DI幫助您從彼此分離的應用程序對象,AOP可以幫助你消除來自他們影響的對象橫切關注點。
Spring框架AOP模塊提供了面向方面編程實現,允許您定義方法攔截器和切入點,以干凈脫鉤,實現的功能,應該分開代碼。我將在單獨的一章討論Spring AOP的概念。
Hello World
讓我們從實際編程中使用Spring框架。在開始編寫使用Spring框架的第一個例子,你必須確保已經設置Spring環境。需要對Eclipse IDE有一點知識。
因此,讓我們著手編寫一個簡單的Spring應用程序將打印 “Hello World!” 或基于Spring bean 配置文件來完成配置的其他信息。
第1步 - 創建Java項目:
第一步是使用Eclipse IDE 創建一個簡單的Java項目。選項 File -> New -> Project 最后選擇 Java Project 從向導列表向導。現在,項目命名為 HelloSpring 使用向導窗口,如下所示:
項目創建成功后,將在 Project Explorer 看到下面的內容:
第2步 - 添加必需的庫:
第二步添加 Spring框架,并在我們的項目中通用的日志API庫。要做到這一點,右鍵單擊您的項目名稱 HelloSpring 然后按照上下文菜單中提供以下選項: Build Path -> Configure Build Path 如下顯示的Java 構建路徑窗口:
現在,使用Add External JARs 選項 Libraries 卡提供外部JAR按鈕,添加從Spring框架和通用日志安裝目錄下面的核心JAR文件:
- antlr-runtime-3.0.1
- org.springframework.aop-3.1.0.M2
- org.springframework.asm-3.1.0.M2
- org.springframework.aspects-3.1.0.M2
- org.springframework.beans-3.1.0.M2
- org.springframework.context.support-3.1.0.M2
- org.springframework.context-3.1.0.M2
- org.springframework.core-3.1.0.M2
- org.springframework.expression-3.1.0.M2
- commons-logging-1.1.1
第3步 - 創建源文件:
現在讓我們根據實際創建的源文件 HelloSpring 項目。首先,我們需要創建一個名為包 com.yiibai. 要做到這一點,右鍵點擊 src 在包資源管理部分,并按照選項:New -> Package.
下一步我們創建 HelloWorld.java 和 MainApp.java 在com.yiibai 包下文件。
這里是 HelloWorld.java 的文件的內容:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package com.yiibai; public class HelloWorld { private String message; public void setMessage(String message){ this .message = message; } public void getMessage(){ System.out.println( "Your Message : " + message); } } |
下面是第二個文件 MainApp.java 的內容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package com.yiibai; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( "Beans.xml" ); HelloWorld obj = (HelloWorld) context.getBean( "helloWorld" ); obj.getMessage(); } } |
有以下兩個要點需要注意在主要程序中:
第一步是創建在這里我們使用框架API ClassPathXmlApplicationContext() 應用程序上下文。這個API加載 beans 的配置文件,并最終基于所提供的API,它需要創建并初始化所有的對象。在配置文件中提到的beans 類。
第二個步驟是用來使用創建的上下文的 getBean() 方法獲得所需的bean。此方法使用 bean 的 id 返回,最終可以創建實際對象的通用對象。一旦有了對象,就可以使用這個對象調用任何類方法。
第4步 - 創建bean配置文件:
需要創建一個bean 配置文件,該文件是一個XML文件,并作為 cement 等類組合在一起。這個文件需要在src 目錄下創建如下圖所示:
通常開發人員保留此文件的名稱為 beans.xml 文件,但是必須為獨立的,選擇你喜歡的任何名稱。必須確保這個文件在 CLASSPATH 中可用,并使用相同的名稱在主應用程序而創建的應用程序上下文,如圖MainApp.java文件。
在 beans.xml 中用于分配唯一的ID,以不同的 bean 和控制創造不同的值對象,而不會影響任何 Spring 的源文件。例如,使用下面的文件,可以通過為“message”變量的任何值,這樣你就可以打印消息的不同的值,而不會影響的 HelloWorld.java 和 MainApp.java 文件。讓我們來看看它是如何工作的:
1
2
3
4
5
6
7
8
9
10
11
12
|
<? xml version = "1.0" encoding = "UTF-8" ?> < beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> < bean id = "helloWorld" class = "com.yiibai.HelloWorld" > < property name = "message" value = "Hello World!" /> </ bean > </ beans > |
在Spring 應用程序被加載到內存中,框架利用了上面的配置文件來創建所有定義的 Bean,并在 <bean> 標記定義為它們分配一個唯一的 ID。您可以使用 <property> 標簽來傳遞在創建對象時使用不同的變量的值。
第5步 - 運行程序:
創建源代碼和 bean 配置文件來完成,準備好這一步是編譯和運行程序。要做到這一點,保持 MainApp.Java 文件選項卡激活并使用在Eclipse IDE中提供 Run 選項,或使用Ctrl + F11可以編譯并運行應用程序MainApp。如果一切順利那么應用程序這將打印以下信息在 Eclipse IDE 控制臺:
Your Message : Hello World!
恭喜,你已經創建了第一個Spring應用并成功執行。您可以通過更改“message”屬性的值,并保持兩者的源文件不變見上 Spring 應用程序的靈活性。