近兩個月一直在學習java各種架構技術,收獲還是蠻大的。不同的架構都有她突出的亮點,在這個階段,主要還是看了他們設計的理念、涉及的概念,是以主要是看,代碼敲的不多。
主要看的架構:struts、webwork2、tapestry3、spring。
資料庫對象關系映射架構:hibernate、caster、ibatis
涉及到的概念:MVC、IOC、DI、AOP
還有其他的一些著名架構的介紹
1、 struts,原本是去年開始學java看的東西,但是工作原因,沒有更深入的學習,隻是做過幾個簡單的form的資料驗證和送出的程式。當初覺得他效率 也是很一般。現在網上對他的評價不是很好“優點:學習曲線低,易上手,适合初學者,由于存在時間很長了,是以他是一個成熟的産品,而且學習知道多。缺點: jsp+taglib的頁面修改調試起來相當的麻煩,系統配置也比較繁瑣”。現在用struts的人是最多的,也是大多數的公司招聘程式員的基本要求。上 個月又簡單的重新看了看他,但是沒有太深入。
2、webwork2,年初的時候看過一點。當時公司正在用一個“開源系統”做項目,那個系統 用的是webwork, webwork和webwork2因為有很大的差别,就也沒有深入的學習,況且我修改的是系統的controler層部分的代碼,不涉及到 webwork。上個月末的時候,有重新的學習了一下,做了幾個簡單的例子,把它官方的文檔都粗略的看了一遍。開發效率應該和struts差不多,但 webwork2的配置要相對簡單些。webwork2最大的優勢可是在于它的良好的view層的設計,他支援jsp、taglib、velocity、 freemark等。webwork2的學習曲線要不struts稍微高些,資料相對也少也。但是他和struts感覺有點像近親,隻要學會其中一個,那 另一個學習起來就輕松多了。
3、tapestry3,這個東西花了我近一個月的時間搞,他與struts和webwork2是完全不相同的 一個東西,學習曲線很高,學習資料很少。他提倡一個組鍵的概念,開發過程有點像winform。第一個星期看的“tapestry in action”的pdf文檔,e文的,看得很痛苦。第二個星期開始用它做東西,做公司的日行程管理系統,做了三個星期,基本功能都做完了,然後剩下的修改 的工作就都交給其他同僚,就沒我事了。剛開始用它開發的時候,感覺挺别扭的,挺多地方不适應,覺得它的效率慢。用了一段時間,漸漸适應了後,發現他的用起 來還是蠻友善的。由于它的資料實在太少了,是以要更深入的學習就隻能看他的源代碼了,這個是很郁悶的事情。tapestry4已經是測試階段了, tapestry4比tapestry3又有了很大的改進,整合了hivemind,感覺整合後,tapestry成了hivemind的一個附加包,這 樣看來tapestry4将成為sping的近親,因為他們的設計目标是一樣的。
struts、webwork2、 tapestry3工作的主要側重點在于form的處理上,将form資料傳到controler層後,controler層怎麼處理資料他們就不管了。 spring和他們不同,spring通過ioc設計和di設計,controler層和model層的工作。
4、spring,他實作的 功能比較全,但是使用和配置比較麻煩,是以在架構選型的時候,更多公司會選擇struts和webwork。spring最大的亮點是他的bean管理功 能,可以對資料庫操作提供一個很棒的事務管理,這個功能是其它的架構所不具備的,是以他通常是和其他的架構組合使用,現在常被用到的組合
struts + spring + 其他
webwork + spring + 其他
tapestry + spring + 其他
我上面說的公司的日行程管理就是用“tapestry + spring + hibernate”作的
5、hibernate,這個是個大哥大,不用說也多知道。
caster,xml支援比較好,分頁功能比較差
ibatis,簡單友善,可以在配置檔案中寫sql。
6、對于IOC設計和DI設計,可以看看spring和hivemind1.1的文檔,spring和hivemind1.1都很好的實作了bean的管理。但是hivemind1.1用的人很少,他的官方網站上的文檔組織的很亂,很難通過它的官方文檔來學習。