自從6月份寫過一些博客之后,有將近5個月沒寫博客了,或者由于工作繁忙,或者由于懶于書筆,又或者最近沒有研究技術上的東西,根本無從寫起。雖然從事項目管理工作,但深知沒有技術根底,管理好一個IT項目談何容易。難得近期各項目走上正軌,有點閑心回憶一下技術方面的東西,那就拿ssh開刀吧,誰叫它是最流行的J2EE框架組合呢。
花了將近3個小時終于把一個ssh整合的例子做完,感嘆不如當年勇啊,雖說經驗豐富了很多,但是實打實地編碼工作,可真不是靠吹牛吹出來的,到處都存在問題,需要花時間一一解決。好了,廢話少說,下面列一下用到的一些技術以及注意點,為了避免誤導人,或致人懶惰,這里就不將所有代碼一一列出,只是貼一些關鍵的代碼段。
用到的技術如下:
1)MySql,在本機上能跑的最小數據庫。
2)Hibernate3,有了注解功能后,感覺比Hibernate2方便多了
3)Spring3
4)Struts2
5)Junit4,用于測試service的方法
6)Log4j
7)需要的jar包如下,
1、MySql
這個就不多說了,安裝過程非常簡單。創建一個數據庫:test,用grant語句創建用戶test,密碼test;創建一張表:ACCOUNT。
2、Hibernate3
1)創建一個domain對象:Account,和表ACCOUNT對應;在上面加注解@Entity @Table(name="ACCOUNT"),這樣就省去了些hbm文件
2)創建AccountDao,實現增刪改查功能;
3、spring3
1)創建spring配置文件:spring.xml,定義datasource,sessionFactory等;
2)創建AccountService,實現業務邏輯,調用AccountDao;
4、Struts2
1)創建web.xml,將spring.xml放入ContextConfigLocation;
2)創建struts.xml,定義package和action及跳轉;
3)創建LoginAction類,從頁面獲取用戶名和密碼,調用AccountService的用于驗證方法
總結,在做這個例子的過程中,出現很多問題,很大一部分都是來自于jar包的缺失和沖突,以下幾點是比較難于發現的,
1)Springframework的jar包版本不一致,會出現很奇怪的問題;
2)缺少struts2-spring-plugin-2.2.3的jar包,會導致spring的bean無法實例化成功,總是獲取到null;
3)javaee.jar和servlet-api.jar的沖突,個人感覺后者是前者的精簡版,在Tomcat容器的lib目錄下存在,會和工程中的lib沖突,解決方案是把Tomcat下的servlet-api.jar換成javaee.jar;
4)如果想通過標記的方式來注入bean,必須在spring配置文件中,添加以下代碼:
<context:annotation-config />
<context:component-scan base-package="com.glen" />
另外,還有兩個問題未解決,望能人幫之,