閑來無事,來搞下SSH架構的搭建吧。
1.struts搭建
這個不用說了吧,建立一個web項目,把struts-2.3.7-all解壓後的struts2-blank裡面的lib以下的包所有拷貝到你建立的web項目裡面,把web-inf以下的web.xml複制過去,把src檔案夾下的struts.xml拷貝到建立的src檔案夾下。最重要的是你要內建spring,那麼問題來了,你少包了,親。去struts-2.3.7-all檔案夾的lib檔案夾下把struts2-spring-plugin-2.3.7包拷貝到建立的lib檔案夾以下。調試,ok。
2.內建spring
(1)aspectj目錄以下的包都拷貝過去
AspectJ是一個面向切面的架構,它擴充了Java語言。spring 使用AOP的時候也會用到它。
(2)spring的核心包肯定少不了了。
(3)cglib包也是必須的。
cglib是一個強大的,高性能,高品質的Code生成類庫,它能夠在執行期擴充Java類與實作Java接口。Hibernate用它來實作PO(Persistent Object 持久化對象)
位元組碼的動态生成。
(4)j2ee目錄下的common-annotations也須要
annotation是注解時須要用到。
(5)jakarta-commons目錄下的commons-logging,commons-pool(java資料庫連接配接池 包)
(6)須要注意的是spring的jar包裡面有slf的api和slf-log4j的轉換包,那麼還須要一個log4j的包,也就是總共三個
slf4j-api-1.5.0,slf4j-log4j12-1.5.0和log4j12-1.5.0這樣輸出log就不會報log什麼的錯誤了。
ok上圖。
眼下的jar包就這麼多。
光說不練不行,那麼我們先建立曬曬struts.xml的内容。
好,大家看到粗紅體的字了嗎?為什麼不是類的包路徑呢???!!!對了,由于action也要交給spring容器執行個體化的啊。是以,這裡僅僅寫spring配置檔案中的bean的name/id,以下是spring的配置檔案applicationContext.xml的内容
怎麼又有粗紅體了!嗯,不要着急,這個是為了友善你在action中調用service的時候直接以@Resource注解的方式擷取spring已經執行個體化的service執行個體而配置的,必需要寫上這兩句。OK,執行下吧
Caused by: java.lang.NullPointerException
oh,NO!why,為什麼會報空指針異常呢?這是由于你的web.xml沒有配置spring的監聽,須要spring去初始化bean才不會有空指針的出錯啊。
web.xml
那麼ok了,如今為止spring內建struts已經能夠執行了
未完待續。。。