隨筆-67  評論-522  文章-0  trackbacks-0
              JavaEE企業(yè)級開發(fā)中,以SSH2框架為核心的應用非常廣,大象根據(jù)項目實踐經(jīng)驗,通過一個實例,詳細的為大家講解如何實現(xiàn)全注解式的開發(fā)。
              開發(fā)環(huán)境
              JDK1.6.0_18
              Eclipse3.2.1
              MyEclipse5.1.0
              Tomcat6.0.10
              MySQL5.0.27
              Navicat Lite for MySQL 8.1.20
              每個人的開發(fā)環(huán)境可能會有差異,但有一點我需要說明的是,JDK的版本不得低于1.5,因為用到了很多1.5版才支持的新特性。TomcatMySQL不要低于我所用的版本,因為我沒在其它的版本上進行測試。Navicat則是MySQL數(shù)據(jù)庫的圖形化操作工具。我在這里假定各位目前已經(jīng)設置好了開發(fā)環(huán)境,下面就開始詳細的說明。
              由于要闡述的內(nèi)容比較多,大象決定將它們劃分成個幾章節(jié)來講,這一章就主要來說說jar包的選擇。
              第一部分選擇必須的jar
              新建一個web項目,然后將必要的jarCOPYlib里面。根據(jù)本文實例demo,大象給出下圖中的最少jar包配置。

                  
              我對這些jar包進行一下說明,方便大家理解。
              
              解壓Struts2.1.6lib文件夾,從中選出上面7jar包添加到我們的工程庫中。commons-loggingfreemarkerognlstruts2-corexwork5個還是struts2的核心包。但在Struts2.1.6這個版本中,還需要加上commons-fileupload包。如果沒有,則啟動就會報錯,不過不需要像網(wǎng)上傳言的那樣還得加上commons-iojar包,這些大象都親自做過測試。在本實例中,我將對struts2也采取注解的方式,所以用到了struts2-convention-plugin-2.1.6.jar這個插件。因為要與spring整合,所以struts2-spring-plugin-2.1.6.jar也必不可少。
              
              大象在這里偷個懶,直接將spring的完整jar包加了進來,如果各位想精簡類庫的話,就選取它的分類jar包吧。比如本例使用struts2作為MVC框架,所以springwebmvc就不可能用到了。有想改的朋友請自己動手改下。另外有點我想說下,如果采取完整springjar包,還需要Spring2.5.6\lib\concurrent文件夾中的backport-util-concurrent.jar,如果不加這個,spring會報錯。但是采取spring分類jar包的形式,這個可以不用加,至于具體使用什么需要依賴這個包,大象還沒去測試過,這個有待驗證。還有lib\slf4j下的日志包,目前很多都開始采用基于slf4j接口的日志器,它的好處就是日志器是根據(jù)slf4j的接口來進行實現(xiàn),可以在不改變代碼的情況下更換日志器。最后Spring的源代碼中使用的是commons-logging記錄日志,因此這個包不能少,不過因為struts2也用到了,所以這里就省了。
              
              Hibernate3.3版開始,對jar包結(jié)構做了一次大的調(diào)整,我們只需要加入lib\required文件夾下面的6jar包。請注意這6jar包都是使用Hibernate所必須的。另外再加上hibernate核心包。這里我將slf4j-api-1.5.2.jar換成了1.5.0,這是因為slf4j是一個通用日志接口,不提供任何實現(xiàn),我在demo里面使用的是log4j,而hibernate包里面沒有log4jslf4j實現(xiàn)。而且如果版本不一致,會有異常,因此我就采用Spring2.5.6\lib\slf4j里面提供的配套版本。另外我將commons-collections-3.1.jar換成了Struts2.1.6里面的3.2版。
              
              例子中使用Hibernate JPA來完成實體對象映射,所以上面這些包都必不可少。使用注解的方式,可以不用寫繁瑣的配置文件,降低了出錯機率。而且現(xiàn)在很多人都喜歡這種方式。大家可以去sourceforge下載。

              下載地址http://sourceforge.net/projects/hibernate/files/

              
              本例使用DBCP連接池來管理數(shù)據(jù)源。
              
              MySQL數(shù)據(jù)庫的連接驅(qū)動。
              
              這個包的作用是創(chuàng)建動態(tài)代理對象。比如在使用AOP方式管理spring事務時,如果我們的目標對象沒有實現(xiàn)接口,而又要使用AOP來處理事務,這時就需要用到這個jar包。可以在Spring2.5.6\lib\cglib里面找到。
              
              JSTL標簽庫,很經(jīng)典的東東,如果需要可以將它們加入lib中。
              大象在這里建議大家做開發(fā)的時候,不要過多的依賴MyEclipse提供的那些功能,多用手動的方式來做。那樣方便是方便了,但不利于學習。比如加入上面這些開發(fā)所用的類庫,這樣可以更清楚的了解每個jar包的作用,增加知識的積累,方便以后調(diào)試。Ok,關于這部分的內(nèi)容到這里就說完了,那么,我們下次繼續(xù)。
              
          本文為菠蘿大象原創(chuàng),如要轉(zhuǎn)載請注明出處。http://www.aygfsteel.com/bolo
          posted on 2010-04-11 22:24 菠蘿大象 閱讀(22514) 評論(35)  編輯  收藏 所屬分類: Struts2

          評論:
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2010-04-11 22:46 | E2
          從來就不用MyEclipse  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2010-04-11 23:22 | 菠蘿大象
          例子我做好了,寫得比較簡單,主要是方便大家理解與學習,關鍵問題是用文字把它表述出來需要點時間。看過我博客的朋友應該知道,大象是個很負責的人,我一直都是很用心在寫博客。我從來沒有從網(wǎng)上隨便抄一些文字和代碼來敷衍了事。所有的字句都傾注了我的理解與總結(jié)。所有的例子都親自做過測試過。所以請大家耐心等下,后面的章節(jié)很快就會出來。  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一)[未登錄] 2010-04-12 08:33 | 小人物
          頂一個!!!  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2010-04-13 12:58 | gouf
          值得看下看, 特別是spring的 ^^  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一)[未登錄] 2010-04-15 16:18 | 追求
          好文章 ,簡述了一個項目的主要框架思想及代碼實現(xiàn) 再贊一個,辛苦這么晚還在為IT業(yè)做貢獻,之前一直也想寫這類文章,怎耐本人太懶   回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2010-04-15 19:45 | 菠蘿大象
          @追求
          呵呵,謝謝支持  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2010-04-19 23:28 | 三國阿海
          我總算注冊成功了,忙了我大半個小時。我還以為是我一定要注冊那個什么的郵箱。

          后來才在Yahoo收到,BlogJava給我發(fā)的信息。  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2010-04-20 10:30 | keer
          netbeans...  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2010-04-22 08:34 | 稅國政
          樓主能否給出代碼下載呢?  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一)[未登錄] 2010-04-23 14:13 | javaStudy
          不錯。對jar包的選擇講解的很好。網(wǎng)上其他的一些文章中都是說,把什么框架的lib下的jar全拷到工程里,說是為了,省事,不易出錯。  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2010-04-23 15:57 | 菠蘿大象
          @javaStudy
          謝謝支持,你說的很對,那樣做一點用處都沒有,寫的人不清楚,看得人更不清楚。大象就是想讓大家看點有用的東西,僅此而已。  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2010-04-26 10:51 | software-Andy
          樓主嚴謹?shù)膽B(tài)度讓人敬佩啊
          好文章,值得借鑒  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2010-04-26 12:44 | 菠蘿大象
          @software-Andy
          謝謝支持。  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一)[未登錄] 2010-10-09 18:51 | nassir
          請問下菠蘿大象,在你這個ssh2項目中sessionFactory是如何注入到HibernateDaoSupport中去了,我通過注釋搭建項目,加載XML文件時,怎么老報 Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
          提示我sessionFactory沒有注入

          希望有時間幫忙給個解釋,謝謝

          我的郵箱:nassir@126.com
            回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2010-10-11 14:32 | 菠蘿大象
          @nassir
          這位童鞋你好,首先謝謝你關注我的博客。我想問下,你將我的這五篇文章都仔細的看完了嗎?恩,是仔細的,如果還不是很清楚的話,再多看幾遍,另外把我提供的源碼下下來也看看。確認自己都搞清楚沒問題了,再動手做吧。我碰到有很多朋友都是還沒仔細的看,就急著開始動手做了,后來他們按我的建議,都自己解決了,希望你也能自己解決,如果還有什么不清楚的,請在回復中寫出來,我會看到的。  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2011-02-17 13:17 | sdfsdf
          關注SSH中,謝謝啦  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2011-03-17 18:40 | taote
          今天報了一個錯誤,java.lang.ClassCastException: org.hibernate.annotations.common.reflection.ja。。。。。。
          查了好多遍原來是hibernate的annotation的jar包沖突了。我用的是hibernate3.6,所以hibernate-annotations.jar和hibernate-commons-annotations.jar這兩個jar就不要加了,hibernate3.5以后已經(jīng)集成了annotation了。  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2011-03-17 22:55 | 菠蘿大象
          @taote
          我沒用3.6的進行測試,謝謝你的提醒,大象非常感謝  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一)[未登錄] 2011-04-28 17:59 | AAA
          好好好 贊贊贊  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2011-05-03 23:59 | huanghao
          樓主,謝謝分享  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2011-05-14 11:29 | 文學社
          看來還要加強學習。  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2011-05-16 16:40 | 李亮
          為什么源碼里面的注解都是亂碼  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2011-05-16 18:02 | 菠蘿大象
          @李亮
          你工作空間設置的是什么編碼?我用的是UTF-8編碼  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2011-06-04 09:49 | wings
          謝謝  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2011-06-13 17:05 | 李曉陽
          請問下菠蘿大象,你在這個框架的用到的jar包能不能給我發(fā)一份,郵箱地址是xupengfei666@163.com,萬分感謝啊。  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2011-06-13 17:09 | 菠蘿大象
          @李曉陽
          還在使用老方法做啊?改成maven吧,沒看到傳統(tǒng)做法我已經(jīng)沒寫了嗎?你想要我還是可以發(fā)給你的,你不覺得傳統(tǒng)方式很麻煩么,效率也不高  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一)[未登錄] 2011-08-01 13:12 | 海風
          多謝分享,對我很有用,學習了!  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2012-10-09 09:59 | 伍葉春
          缺少包:
          commons-lang-2.5.jar

          否則StringUtils.isNotBlank(name)報錯.
            回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2012-10-09 10:04 | 菠蘿大象
          @伍葉春
          我這里所說的,是必須有的jar包,commons-lang是可選的,第五篇最下面,有本例所用到的jar包。你可以去看看  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2013-09-10 16:42 | 李登峰
          大象你好,三大框架service層,dao層都有接口嗎?你這這么沒有,那個接口主要有什么意義  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2013-09-27 10:01 | 菠蘿大象
          @李登峰
          其實對于業(yè)務來說,要不要接口已經(jīng)沒有區(qū)別了,相反搞接口還顯得麻煩,接口的定義是一種抽象,對于業(yè)務來說你根本就抽象不出來,你不知道什么時候需求就變了。  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2013-10-08 14:34 | 求指導
          大象,您好,謝謝您詳細的說明,能把jar包發(fā)一份到我的郵箱嗎?baoxilin@126.com  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2013-11-23 16:14 | asdasd
          沒接口 怎么用aop創(chuàng)建動態(tài)代理對象@菠蘿大象
            回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一)[未登錄] 2014-07-21 13:09 | lxl
          講的太好了,真心感謝你的講解,思路清晰,受益匪淺~謝謝~  回復  更多評論
            
          # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一) 2015-01-17 10:01 | ld
          可以發(fā)一份Struts2.1.6+Spring2.5.6+Hibernate3.3.1源碼我學下嗎zhengshuihong1990@163.com,最近在搭建SSH項目,我在想opesseion怎么關閉,又說在filter可以關,又說,手動關,是不是不用關啊我用的是hibernate3.6的  回復  更多評論
            
          主站蜘蛛池模板: 防城港市| 土默特左旗| 崇左市| 磐安县| 乌恰县| 永顺县| 隆子县| 呼伦贝尔市| 昆明市| 精河县| 迁安市| 五大连池市| 遂溪县| 新建县| 长丰县| 临潭县| 雅江县| 梁平县| 泰和县| 广平县| 巴青县| 安丘市| 佛教| 红原县| 惠安县| 天峻县| 保康县| 伊金霍洛旗| 类乌齐县| 青州市| 东兰县| 涿鹿县| 仙游县| 神农架林区| 阳高县| 敖汉旗| 安庆市| 宝山区| 竹山县| 日照市| 上林县|