我的家園

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

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

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

          Q:SVN 上下下來的SPRING源碼一堆紅叉,因為引用的包都在別的工程里,如何解決這個問題.
          A: spring的源碼是用maven來管理的,你裝個maven的就不會有上述的問題了。在進行源代碼分析的時候,我是把項目一個一個導(dǎo)入到Eclipse中去的。

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

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

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

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


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




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


          網(wǎng)站導(dǎo)航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 拜城县| 光泽县| 甘谷县| 大余县| 贡山| 纳雍县| 海盐县| 贞丰县| 蓝田县| 乌拉特前旗| 新巴尔虎右旗| 潮州市| 金沙县| 化德县| 涡阳县| 亳州市| 同江市| 本溪市| 海晏县| 香格里拉县| 彝良县| 信宜市| 霍林郭勒市| 广昌县| 清苑县| 岗巴县| 新沂市| 安远县| 剑川县| 长沙县| 华安县| 科技| 含山县| 吉隆县| 邢台县| 沙坪坝区| 汾西县| 扶绥县| 乐山市| 嘉义县| 北京市|