Struts2.1.6+Spring2.5.6+Hibernate3.3.1全註解實例詳解(一)

 在JavaEE企業級開發中,以SSH2框架爲核心的應用非常廣,大象根據項目實踐經驗,通過一個實例,詳細的爲大家講解如何實現全註解式的開發。
    開發環境
    JDK1.6.0_18
    Eclipse3.2.1
    MyEclipse5.1.0
    Tomcat6.0.10
    MySQL5.0.27
    Navicat Lite for MySQL 8.1.20
    每個人的開發環境可能會有差異,但有一點我需要說明的是,JDK的版本不得低於1.5,因爲用到了很多1.5版才支持的新特性。Tomcat和MySQL請不要低於我所用的版本,因爲我沒在其它的版本上進行測試。Navicat則是MySQL數據庫的圖形化操作工具。我在這裏假定各位目前已經設置好了開發環境,下面就開始詳細的說明。
    由於要闡述的內容比較多,大象決定將它們劃分成個幾章節來講,這一章就主要來說說jar包的選擇。
    第一部分:選擇必須的jar
    新建一個web項目,然後將必要的jar包COPY到lib裏面。根據本文實例demo,大象給出下圖中的最少jar包配置。
        
    我對這些jar包進行一下說明,方便大家理解。
    
    解壓Struts2.1.6的lib文件夾,從中選出上面7個jar包添加到我們的工程庫中。commons-logging、freemarker、ognl、struts2-core、xwork這5個還是struts2的核心包。但在Struts2.1.6這個版本中,還需要加上commons-fileupload包。如果沒有,則啓動就會報錯,不過不需要像網上傳言的那樣還得加上commons-io的jar包,這些大象都親自做過測試。在本實例中,我將對struts2也採取註解的方式,所以用到了struts2-convention-plugin-2.1.6.jar這個插件。因爲要與spring整合,所以struts2-spring-plugin-2.1.6.jar也必不可少。
    
    大象在這裏偷個懶,直接將spring的完整jar包加了進來,如果各位想精簡類庫的話,就選取它的分類jar包吧。比如本例使用struts2作爲MVC框架,所以spring的webmvc就不可能用到了。有想改的朋友請自己動手改下。另外有點我想說下,如果採取完整spring的jar包,還需要Spring2.5.6\lib\concurrent文件夾中的backport-util-concurrent.jar,如果不加這個,spring會報錯。但是採取spring分類jar包的形式,這個可以不用加,至於具體使用什麼需要依賴這個包,大象還沒去測試過,這個有待驗證。還有lib\slf4j下的日誌包,目前很多都開始採用基於slf4j接口的日誌器,它的好處就是日誌器是根據slf4j的接口來進行實現,可以在不改變代碼的情況下更換日誌器。最後Spring的源代碼中使用的是commons-logging記錄日誌,因此這個包不能少,不過因爲struts2也用到了,所以這裏就省了。
    
    Hibernate從3.3版開始,對jar包結構做了一次大的調整,我們只需要加入lib\required文件夾下面的6個jar包。請注意這6個jar包都是使用Hibernate所必須的。另外再加上hibernate核心包。這裏我將slf4j-api-1.5.2.jar換成了1.5.0,這是因爲slf4j是一個通用日誌接口,不提供任何實現,我在demo裏面使用的是log4j,而hibernate包裏面沒有log4j的slf4j實現。而且如果版本不一致,會有異常,因此我就採用Spring2.5.6\lib\slf4j裏面提供的配套版本。另外我將commons-collections-3.1.jar換成了Struts2.1.6裏面的3.2版。
    
    例子中使用Hibernate JPA來完成實體對象映射,所以上面這些包都必不可少。使用註解的方式,可以不用寫繁瑣的配置文件,降低了出錯機率。而且現在很多人都喜歡這種方式。大家可以去sourceforge下載。
    下載地址:<a href="http://sourceforge.net/projects/hibernate/files/" target="_blank" style="color: #1a8bc8; text-decoration: none;" <="" span="" lang="EN-US">http://sourceforge.net/projects/hibernate/files/
    
    本例使用DBCP連接池來管理數據源。
    
    MySQL數據庫的連接驅動。
    
    這個包的作用是創建動態代理對象。比如在使用AOP方式管理spring事務時,如果我們的目標對象沒有實現接口,而又要使用AOP來處理事務,這時就需要用到這個jar包。可以在Spring2.5.6\lib\cglib裏面找到。
    
    JSTL標籤庫,很經典的東東,如果需要可以將它們加入lib中。
    大象在這裏建議大家做開發的時候,不要過多的依賴MyEclipse提供的那些功能,多用手動的方式來做。那樣方便是方便了,但不利於學習。比如加入上面這些開發所用的類庫,這樣可以更清楚的瞭解每個jar包的作用,增加知識的積累,方便以後調試。Ok,關於這部分的內容到這裏就說完了,那麼,我們下次繼續。

    本文爲菠蘿大象原創,如要轉載請註明出處。http://www.blogjava.net/bolo

本文載自:http://www.blogjava.net/bolo/archive/2010/04/11/318004.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章