天天看點

SSH架構搭建

閑來無事,來搞下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已經能夠執行了

未完待續。。。