先看代碼
core包中的SpringVersion.java
public class SpringVersion {
/**
* Return the full Spring version string.
* @see java.lang.Package#getImplementationVersion
*/
public static String getVersion() {
return SpringVersion.class.getPackage().getImplementationVersion();
}
}
SpringVersion.class.getPackage().getImplementationVersion();
這一句會返回什么信息呢?我使用得是Spring1.2.6,返回如下信息.
-----
1.2.6
-----
那么這個信息又是從什么地方來的呢?
這個就要說到產(chǎn)品的發(fā)布.產(chǎn)品發(fā)布會打成一個JAR包.JAR除了包含.class文件外,還包括一個META-INF文件夾.它下面又包含了一個MANIFEST.MF的文件.它包含了這個產(chǎn)品的產(chǎn)品信息.現(xiàn)在看看這個文件里都有什么吧
-----------------------
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.)
Implementation-Title: Spring Framework
Implementation-Version: 1.2.6
Spring-Version: 1.2.6
-----------------------
現(xiàn)在知道getImplementationVersion()是從哪里取東東了吧:)
posted @
2007-07-23 13:34 JAVA虛擬機(jī) 閱讀(456) |
評論 (0) |
編輯 收藏
對于現(xiàn)有較成熟的Model-View-Control(MVC)框架而言,其解決的主要問題無外乎下面幾部分:
1. 將Web頁面中的輸入元素封裝為一個(請求)數(shù)據(jù)對象。
2. 根據(jù)請求的不同,調(diào)度相應(yīng)的邏輯處理單元,并將(請求)數(shù)據(jù)對象作為參數(shù)傳入。
3. 邏輯處理單元完成運算后,返回一個結(jié)果數(shù)據(jù)對象。
4. 將結(jié)果數(shù)據(jù)對象中的數(shù)據(jù)與預(yù)先設(shè)計的表現(xiàn)層相融合并展現(xiàn)給用戶。
現(xiàn)在來看看Spring MVC是怎么做的。
一 總體概述
Spring MVC的核心組件是DispatcherServlet,該類既作為整個MVC框架的前端控制器,同時又負(fù)責(zé)調(diào)動框架中其它組件協(xié)同工作完成對一個請求的處理。處理一個請求的大致流程如下:
1 請求首先由DispatcherServlet截獲,DispatcherServlet把請求交給HandlerMapping,尋找相應(yīng)的邏輯處理單元。
2 HandlerMapping根據(jù)請求的不同,返回一組邏輯處理單元。在Spring MVC中,邏輯處理單元一般是由0個或多個interceptor和一個controller組成的。
3 DispatcherServlet首先判斷返回的邏輯處理單元中是否有interceptor,如果有,則首先依次調(diào)用interceptor的方法。如果沒有,則執(zhí)行controller的方法。
4 DispatcherServlet通過HandlerAdapter來執(zhí)行controller的方法,返回一個包含了模型和視圖的對象ModelAndView。使用HandlerAdapter的目的是因為Spring MVC并不關(guān)心controller實現(xiàn)了什么樣的接口,只要提供相應(yīng)的HandlerAdapter,Spring MVC就知道該如何執(zhí)行controller。
5 如果之前返回的邏輯處理單元包含interceptor,DispatcherServlet又依次(和剛才調(diào)用interceptor的順序相反)調(diào)用interceptor的方法。
6 DispatcherServlet把返回的ModelAndView對象交給ViewResolver,通過ViewResolver返回一個合適的View對象。
7 最后DispatcherServlet調(diào)用View對象的render方法把模型中的數(shù)據(jù)和視圖融合,返回給用戶。
posted @
2007-07-13 11:27 JAVA虛擬機(jī) 閱讀(379) |
評論 (0) |
編輯 收藏
切面(aspect)
切面是你要實現(xiàn)的交叉功能。
連接點(joinpoint)
連接點是應(yīng)用程序執(zhí)行過程中插入切面的地點。
通知(Advice)
通知切面的實際實現(xiàn)
切入點(pointcut)
切入點定義了通知應(yīng)該應(yīng)用在哪些連接點。
引入(Intrduction)
引入允許你為已經(jīng)存在的類添加新方法和屬性。
目標(biāo)對象(Target)
目標(biāo)對象是被通知的對象。
代理(Proxy)
代理是將通知應(yīng)用到目標(biāo)對后創(chuàng)建的對象。
織入(weaving)
織入是將切面應(yīng)用到目標(biāo)對象從而創(chuàng)建一個新的代理對象的過程。
版權(quán)說明:
http://www.aygfsteel.com/wiki
posted @
2007-01-09 11:16 JAVA虛擬機(jī) 閱讀(988) |
評論 (1) |
編輯 收藏