1. 程式人生 > >xml配置檔案整合SSH

xml配置檔案整合SSH

xml配置檔案整合SSH(Spring4/Struts2.3/Hibernate5)

整合原理

將MVC三層物件交由Spring建立與管理.我們配置好需要Spring管理的類後(Spring配置檔案或者註解都可以實現),由Spring進行屬性注入,本質就是當專案啟動後,SpringIOC容器根據我們所配置的類建立反射該類的物件,然後通過構造注入或者屬性注入(這裡是JavaBean屬性注入,不是成員變數,所以類中一定要有setter方法).

物件的依賴關係

  1. Struts2中的核心物件Action(類似於Servlet)依賴於Service物件(泛指業務邏輯類)
  2. Service物件依賴於Dao(資料訪問層類)物件
  3. Dao物件依賴於SessionFactory物件
  4. SessionFactory物件依賴於DataSource物件

事物的依賴關係

  1. Service物件中的切點方法需要織入(weaver)事務通知

  2. 事務通知依賴於事務管理器物件

  3. 事務管理器物件依賴於SessionFactory物件

導包

  1. Hibernate依賴包(required)
  2. Struts2依賴包(注意Struts2與Hibernate中的CGLIB包重複請刪除低版本的jar包:javassist包)
  3. Struts2整合Spring包:struts2-spring-plugin
  4. Spring包+aop聯盟包+aspectj+資料庫驅動包+C3P0連線池包

Spring整合web專案

  1. 在src目錄下建立applicationContext.xml檔案,讀取db.properties配置檔案,配置資料庫連線池資訊(Spring配置檔案)

  2. 在專案的web.xml配置檔案中配置Spring啟動監聽器,類名ContextLoaderListener(使得在專案啟動時建立IOC容器)

搭建Struts2

  1. 準備Action類(這裡我們繼承ActionSupport類完成)
  2. 在src目錄下建立struts.xml檔案,配置Action
  3. 在web.xml中配置Struts2的核心過濾器,類名StrutsPrepareAndExecuteFilter(注意這個過濾器要放在其它過濾器之後,因為過濾器的執行順序就是按照你配置的順序執行的)

Spring整合Struts2

  1. 在struts.xml中配置常量<constant name="struts.objectfactory" value="spring" />,將struts2中的物件Action交由Spring管理
  2. 在Action中新增Service屬性,並將Action與Service實現類注入Spring
  3. 將struts.xml中的action標籤的class屬性值修改為applicationContext.xml中Action注入配置的name屬性值

搭建Hibernate

  1. 建立實體類

  2. 在實體類包路徑下建立"實體類名.hbm.xml"檔案,配置實體類物件關係對映檔案

  3. 在src目錄下建立hibernate.cfg.xml主配置檔案(資料庫方言/SQL語句顯示與格式化/引入對映配置等)

Spring整合Hibernate

  1. 在applicationContext.xml檔案中配置如下,讀取hibernate主配置檔案

準備Dao並注入Spring容器(略)
配置AOP事務

  1. 在applicationContext.xml配置事務管理器,Hibernate事務管理器實現類:hibernateTransactionmanager 

  2. 在applicationContext.xml配置事務通知

  3. 在applicationContext.xml配置切面

完成(還有個no-session問題,請在web.xml中配置OpenSessionInViewFilter)