我的家園

          我的家園
          《Spring技術(shù)內(nèi)幕》一書(shū)出版上市有一段時(shí)間了,承蒙各位讀者的厚愛(ài),通過(guò)各種方式給我提了不少的問(wèn)題,作為作者,我非常感謝大家的支持。這里,我把這些問(wèn)題匯總一下,供大家參考,同時(shí)如果有機(jī)會(huì)出第二版的時(shí)候,我會(huì)把這些問(wèn)題在書(shū)中做修訂的。

          從網(wǎng)上的評(píng)論上看,對(duì)整體內(nèi)容大家比較有看法的是,覺(jué)得書(shū)中缺少架構(gòu)上的高層次的分析,基本是源代碼的解析。我同意大家的看法,只是有一點(diǎn)需要澄清一下,原來(lái)書(shū)的定位并不是想從Spring的應(yīng)用角度出發(fā)的,而是想從實(shí)現(xiàn)角度出發(fā),依托代碼實(shí)現(xiàn)來(lái)完成這種分析,因?yàn)樵创a實(shí)現(xiàn)的分析是最為直接和過(guò)癮的。對(duì)大家提出的缺少架構(gòu)分析的意見(jiàn),如果有機(jī)會(huì),我會(huì)為書(shū)的再版補(bǔ)充進(jìn)去,體現(xiàn)一個(gè)應(yīng)用問(wèn)題-》架構(gòu)設(shè)計(jì)-》源代碼實(shí)現(xiàn)的邏輯鏈條,讓線索更加清晰,提高閱讀的可讀性,讓Spring的初學(xué)者也能順著這個(gè)線索深入的了解Spring。

          我這里還收集了不少讀者的技術(shù)問(wèn)題,一一總結(jié)如下 - 在這里,再次衷心的感謝讀者的貢獻(xiàn)!
          Q:在哪里能找到Petclinic的源代碼?
          A:在Spring3.0的正式版中,是沒(méi)有petclinic的源代碼發(fā)布的,不知道是什么原因,沒(méi)有把它發(fā)到正式發(fā)布包中。大家如果找不到,可以到Spring3.0 SVN的代碼庫(kù)中,正式版(Release)前面的版本中去找,比如RC版和M3版中。

          Q:SVN 上下下來(lái)的SPRING源碼一堆紅叉,因?yàn)橐玫陌荚趧e的工程里,如何解決這個(gè)問(wèn)題.
          A: spring的源碼是用maven來(lái)管理的,你裝個(gè)maven的就不會(huì)有上述的問(wèn)題了。在進(jìn)行源代碼分析的時(shí)候,我是把項(xiàng)目一個(gè)一個(gè)導(dǎo)入到Eclipse中去的。

          Q:你的書(shū)只是說(shuō)吧spring,從svn上donw下來(lái),但是搭建環(huán)境,好像還是比較麻煩,很多類(lèi)找不到,你能不能在你的博客上演示下 ,我的build path 一直有問(wèn)題。
          A:我這里的環(huán)境是這樣的,安裝ant以后,進(jìn)入到從SVN下載下來(lái)的Spring源代碼目錄中,build的時(shí)候要連上互連網(wǎng),進(jìn)入到build-spring-framework目錄下,運(yùn)行ant jar這時(shí)候就可以在DOS窗口下看到整個(gè)build的過(guò)程,已經(jīng)從互聯(lián)網(wǎng)上下載相關(guān)的依賴(lài)庫(kù)的過(guò)程,需要耐心一些,時(shí)間會(huì)有一些長(zhǎng)。

          Q:按照書(shū)中的介紹,將代碼導(dǎo)入Eclipse,導(dǎo)入成功后,我想查看某個(gè)方法或者類(lèi)的調(diào)用視圖,點(diǎn)“Open Call Hierarchy”,但是Eclipse會(huì)提示:The resource is not  on the build  path of  a Java project ,打開(kāi)不了。但是從您書(shū)中的截圖來(lái)看,您是可以打開(kāi)的。不知道是啥原因,您能指導(dǎo)一下我嗎?
          A:我是把一個(gè)一個(gè)模塊分別導(dǎo)入的,不需要理會(huì)那些紅叉,同時(shí)可以按照上面提到的build過(guò)程來(lái)對(duì)Spring進(jìn)行構(gòu)建,可以看到整個(gè)依賴(lài)庫(kù)的下載過(guò)程。

          Q:書(shū)的30-31頁(yè)時(shí),有一點(diǎn)疑問(wèn):在AbstractRefreshableApplicationContext這個(gè)類(lèi)中,沒(méi)有int loadBeanDefinitions(String location,Set actualResources) Resource getResource(String location) 這兩個(gè)方法,但是30-31怎么把這兩個(gè)方法羅列出來(lái)了?
          A:對(duì)不起,是描述和排版的問(wèn)題。這兩段代碼是在AbstractBeanDefinitionReader中實(shí)現(xiàn)的,不在 AbstractRefreshableApplicationContext這個(gè)類(lèi)中。如果出下一版的話,我會(huì)更正的。

          Q:書(shū)的第30頁(yè),public int loadBeanDefinitions(String location, Set<Resource> actualResources) ResourceLoader resourceLoader = getResourceLoader();我看寫(xiě)的注釋是:這里取得ResourceLoader ,使用的是DefaultResourceLoader.我看了一下 getResourceLoader(),它返回的是接口類(lèi)型ResourceLoader ,DefaultResourceLoader 是怎么注入進(jìn)來(lái)的?
          A:在相關(guān)類(lèi)的類(lèi)變量中定義的,具體代碼可以在PathMatchingResourcePatternResolver的初始化函數(shù)中,看到對(duì)它的設(shè)置
          public PathMatchingResourcePatternResolver() {
          		this.resourceLoader = new DefaultResourceLoader();
          }


          Q:如果我是一位Spring的初學(xué)者和入門(mén)者,這本書(shū)的內(nèi)容有些深,有沒(méi)有合適的Spring應(yīng)用開(kāi)發(fā)入門(mén)的相應(yīng)資料?
          A:有的,也和這本書(shū)相關(guān)。在本書(shū)完成以后,我為Spring應(yīng)用開(kāi)發(fā)的學(xué)習(xí)錄制了一段視頻,分析了petclinic這個(gè)著名的Spring應(yīng)用案例的使用和實(shí)現(xiàn),通過(guò)這個(gè)材料,讓你對(duì)Spring應(yīng)用快速上手,然后再結(jié)合《Spring技術(shù)內(nèi)幕》來(lái)學(xué)習(xí)和閱讀,對(duì)Spring的理解就可以進(jìn)入到一個(gè)比較深入的層次。這個(gè)視頻的資料在:http://www.hztraining.com/bbs/showtopic-5.aspx或者在互動(dòng)網(wǎng)上:http://www.china-pub.com/3500052有興趣的話,不妨了解一下。




          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 兴山县| 肥乡县| 禄劝| 巴中市| 鱼台县| 云和县| 新竹市| 鄄城县| 南江县| 洛扎县| 凤城市| 布尔津县| 杨浦区| 正阳县| 涟源市| 宝丰县| 鱼台县| 茂名市| 九龙坡区| 贵港市| 平和县| 行唐县| 柯坪县| 永胜县| 三门峡市| 黑河市| 青川县| 淮阳县| 昌平区| 饶平县| 霍山县| 余庆县| 南昌市| 浙江省| 合作市| 嘉定区| 宣城市| 进贤县| 宜都市| 江陵县| 巴中市|