posts - 3,comments - 1,trackbacks - 0

          先看代碼
          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();
          這一句會(huì)返回什么信息呢?我使用得是Spring1.2.6,返回如下信息.
          -----
          1.2.6
          -----
          那么這個(gè)信息又是從什么地方來的呢?
          這個(gè)就要說到產(chǎn)品的發(fā)布.產(chǎn)品發(fā)布會(huì)打成一個(gè)JAR包.JAR除了包含.class文件外,還包括一個(gè)META-INF文件夾.它下面又包含了一個(gè)MANIFEST.MF的文件.它包含了這個(gè)產(chǎn)品的產(chǎn)品信息.現(xiàn)在看看這個(gè)文件里都有什么吧
          -----------------------
          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ī) 閱讀(462) | 評(píng)論 (0)編輯 收藏
          對(duì)于現(xiàn)有較成熟的Model-View-Control(MVC)框架而言,其解決的主要問題無外乎下面幾部分:
                1. 將Web頁面中的輸入元素封裝為一個(gè)(請(qǐng)求)數(shù)據(jù)對(duì)象。
                2. 根據(jù)請(qǐng)求的不同,調(diào)度相應(yīng)的邏輯處理單元,并將(請(qǐng)求)數(shù)據(jù)對(duì)象作為參數(shù)傳入。
                3. 邏輯處理單元完成運(yùn)算后,返回一個(gè)結(jié)果數(shù)據(jù)對(duì)象。
                4. 將結(jié)果數(shù)據(jù)對(duì)象中的數(shù)據(jù)與預(yù)先設(shè)計(jì)的表現(xiàn)層相融合并展現(xiàn)給用戶。
                現(xiàn)在來看看Spring MVC是怎么做的。
                一 總體概述
           
                Spring MVC的核心組件是DispatcherServlet,該類既作為整個(gè)MVC框架的前端控制器,同時(shí)又負(fù)責(zé)調(diào)動(dòng)框架中其它組件協(xié)同工作完成對(duì)一個(gè)請(qǐng)求的處理。處理一個(gè)請(qǐng)求的大致流程如下:
               1 請(qǐng)求首先由DispatcherServlet截獲,DispatcherServlet把請(qǐng)求交給HandlerMapping,尋找相應(yīng)的邏輯處理單元。
               2 HandlerMapping根據(jù)請(qǐng)求的不同,返回一組邏輯處理單元。在Spring MVC中,邏輯處理單元一般是由0個(gè)或多個(gè)interceptor和一個(gè)controller組成的。
               3 DispatcherServlet首先判斷返回的邏輯處理單元中是否有interceptor,如果有,則首先依次調(diào)用interceptor的方法。如果沒有,則執(zhí)行controller的方法。
               4 DispatcherServlet通過HandlerAdapter來執(zhí)行controller的方法,返回一個(gè)包含了模型和視圖的對(duì)象ModelAndView。使用HandlerAdapter的目的是因?yàn)镾pring MVC并不關(guān)心controller實(shí)現(xiàn)了什么樣的接口,只要提供相應(yīng)的HandlerAdapter,Spring MVC就知道該如何執(zhí)行controller。
               5 如果之前返回的邏輯處理單元包含interceptor,DispatcherServlet又依次(和剛才調(diào)用interceptor的順序相反)調(diào)用interceptor的方法。
               6 DispatcherServlet把返回的ModelAndView對(duì)象交給ViewResolver,通過ViewResolver返回一個(gè)合適的View對(duì)象。
               7 最后DispatcherServlet調(diào)用View對(duì)象的render方法把模型中的數(shù)據(jù)和視圖融合,返回給用戶。
          posted @ 2007-07-13 11:27 JAVA虛擬機(jī) 閱讀(384) | 評(píng)論 (0)編輯 收藏
          切面(aspect)

          切面是你要實(shí)現(xiàn)的交叉功能。

          連接點(diǎn)(joinpoint)

          連接點(diǎn)是應(yīng)用程序執(zhí)行過程中插入切面的地點(diǎn)。

          通知(Advice)

          通知切面的實(shí)際實(shí)現(xiàn)

          切入點(diǎn)(pointcut)

          切入點(diǎn)定義了通知應(yīng)該應(yīng)用在哪些連接點(diǎn)。

          引入(Intrduction)

          引入允許你為已經(jīng)存在的類添加新方法和屬性。

          目標(biāo)對(duì)象(Target)

          目標(biāo)對(duì)象是被通知的對(duì)象。

          代理(Proxy)

          代理是將通知應(yīng)用到目標(biāo)對(duì)后創(chuàng)建的對(duì)象。

          織入(weaving)

          織入是將切面應(yīng)用到目標(biāo)對(duì)象從而創(chuàng)建一個(gè)新的代理對(duì)象的過程。

          版權(quán)說明:http://www.aygfsteel.com/wiki

          posted @ 2007-01-09 11:16 JAVA虛擬機(jī) 閱讀(993) | 評(píng)論 (1)編輯 收藏
          僅列出標(biāo)題  
          主站蜘蛛池模板: 嵩明县| 利辛县| 宁化县| 内丘县| 桂林市| 茶陵县| 大化| 明光市| 永州市| 嘉峪关市| 卢龙县| 汤原县| 隆回县| 应城市| 延安市| 定西市| 卢龙县| 佛坪县| 成安县| 开远市| 汶川县| 高淳县| 清徐县| 马龙县| 蒙阴县| 利辛县| 丹凤县| 大庆市| 镶黄旗| 剑阁县| 海城市| 娄底市| 星座| 嵊泗县| 水城县| 天峻县| 门源| 平舆县| 若尔盖县| 西乌| 大庆市|