我是從asp.net平台轉到java平台的。基於asp.net平台開發網站的快速便捷性,工作幾年來大小網站多少也寫了6、7個。但是轉到java后,因為是在一家大公司,而且做的功能也比較單一,局限於此,一直未能使用java來寫一個web站點。后來正好大學同學從事淘寶電商,讓我幫他弄一個網站,所以我就想到了使用java來開發這個站點,正好練手一下java順便也是使用一下bae,因為很早之前就接觸到了BAE,但是問題在於無法部署asp.net的網站,所以只好作罷,這次正好是一個難得的機會。
考慮到當前這家公司的網站使用的框架是從一個網站開速開發的手腳架而來的,所以我私下花了一些時間來學習了一下這個框架和它的自動代碼生成器,然后就構建了這么一個網站。總的來說,感觸多的是使用java來寫web項目,只要工具使用得當,開發效率也是大大的高。只是詬病在於總是各種配置spring配置、struts2的配置、數據連接池的配置、orm的配置等等。而且對於踏入java中沒有多少人來指導的我來說,很多第一次碰到的錯誤,都得通過自己一遍一遍的查閱來解決,多少有些心酸。
閑話說完了,那么現在開始剖析一下我的這個網站吧。網站是部署在BAE上的,一個淘寶信譽查詢的網站http://www.taoxiaosha.com 網站已經死了好久每天pv180左右。
在asp.net中建站,使用一些新的orm時,我們會提到一些名詞,比如dbfirst or codefirst
那么在當前的工作下,我先手動建立好需要的數據表,自然就是dbfirst了,然后通過上面提到的代碼自動生成工具來生成我們選擇的架構的相關代碼。啥意思呢,就是這個代碼生成器可以根據你自己的需要生成基於SSI或SSH等架構。我選用的是SSI架構,那么代碼生成后的樹結構如下:
網站結構通俗易懂。這個就是生成的代碼結構,個人感覺大項目也好,小項目也罷,都比較適合這種架構了,至少目前在我接觸到的應用范圍中。項目中給我們生成了實體,javabean,基礎數據訪問層,數據業務邏輯層。以及我們的action。當然我自己因為業務的需要增加了一個servlet層。那么通過這么一個架構,就實現了java web項目的實現。
這個網站是做淘寶信譽查詢的,那么自然少不了抓淘寶數據的功能了,抓淘寶數據使用的jsoup。jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。之前在asp.net中抓百度知道和新浪問答的時候使用過HtmlAgilityPack。兩者都是功能異常強大,不過前者是有點類似jquery中的選擇器來獲取dom節點, 而后者則是通過強大的xpath來實現數據抓取。
最后介紹完了就說下我使用的web開發框架:
該項目主頁:http://code.google.com/p/rapid-framework
這個當中有附帶自動代碼生成器,稍加研究、修改,就能定制一個屬於自己的代碼生成器了。