xml配置檔案整合SSH
阿新 • • 發佈:2019-01-12
xml配置檔案整合SSH(Spring4/Struts2.3/Hibernate5)
整合原理
將MVC三層物件交由Spring建立與管理.我們配置好需要Spring管理的類後(Spring配置檔案或者註解都可以實現),由Spring進行屬性注入,本質就是當專案啟動後,SpringIOC容器根據我們所配置的類建立反射該類的物件,然後通過構造注入或者屬性注入(這裡是JavaBean屬性注入,不是成員變數,所以類中一定要有setter方法).
物件的依賴關係
- Struts2中的核心物件Action(類似於Servlet)依賴於Service物件(泛指業務邏輯類)
- Service物件依賴於Dao(資料訪問層類)物件
- Dao物件依賴於SessionFactory物件
- SessionFactory物件依賴於DataSource物件
事物的依賴關係
-
Service物件中的切點方法需要織入(weaver)事務通知
-
事務通知依賴於事務管理器物件
-
事務管理器物件依賴於SessionFactory物件
導包
- Hibernate依賴包(required)
- Struts2依賴包(注意Struts2與Hibernate中的CGLIB包重複請刪除低版本的jar包:javassist包)
- Struts2整合Spring包:struts2-spring-plugin
- Spring包+aop聯盟包+aspectj+資料庫驅動包+C3P0連線池包
Spring整合web專案
- 在src目錄下建立applicationContext.xml檔案,讀取db.properties配置檔案,配置資料庫連線池資訊(Spring配置檔案)
- 在專案的web.xml配置檔案中配置Spring啟動監聽器,類名ContextLoaderListener(使得在專案啟動時建立IOC容器)
搭建Struts2
- 準備Action類(這裡我們繼承ActionSupport類完成)
- 在src目錄下建立struts.xml檔案,配置Action
- 在web.xml中配置Struts2的核心過濾器,類名StrutsPrepareAndExecuteFilter(注意這個過濾器要放在其它過濾器之後,因為過濾器的執行順序就是按照你配置的順序執行的)
Spring整合Struts2
- 在struts.xml中配置常量<constant name="struts.objectfactory" value="spring" />,將struts2中的物件Action交由Spring管理
- 在Action中新增Service屬性,並將Action與Service實現類注入Spring
- 將struts.xml中的action標籤的class屬性值修改為applicationContext.xml中Action注入配置的name屬性值
搭建Hibernate
-
建立實體類
-
在實體類包路徑下建立"實體類名.hbm.xml"檔案,配置實體類物件關係對映檔案
-
在src目錄下建立hibernate.cfg.xml主配置檔案(資料庫方言/SQL語句顯示與格式化/引入對映配置等)
Spring整合Hibernate
-
在applicationContext.xml檔案中配置如下,讀取hibernate主配置檔案
準備Dao並注入Spring容器(略)
配置AOP事務
- 在applicationContext.xml配置事務管理器,Hibernate事務管理器實現類:hibernateTransactionmanager
- 在applicationContext.xml配置事務通知
- 在applicationContext.xml配置切面