java三大框架ssh簡析
一.ssh環境搭配
(1)struts2(web層v和c)
----建立Action
----建立Action核心配置檔案(URL對映),要求類路徑下並且命名為struts.xml
----配置過濾器(沒它不行)
(2)spring(業務邏輯層m)
----建立核心配置檔案
----配置監聽器,指定配置檔案的位置,實現伺服器啟動時載入配置檔案
(3)hibernate(持久層m)
----建立實體類
----配置實體類的資料庫表對映配置檔案
----配置hibernate核心配置檔案,要求類路徑下並命名為hibernate.cfg.xml(也可以交給spring來配置)
----核心配置檔案引入對映配置檔案
二.ssh整合
(1)struts和spring整合
----Servlet的例項是由伺服器來建立的,無法將其移植Java檔案中,自然也就不能在配置檔案中進行Servlet例項的配置。但是這就不符合spring的IOC思想了,所以action的出現就解決了這個問題。
----struts將action例項交給spring來建立(多例項)
----struts的核心配置檔案中的class屬性值對應spring配置檔案中的action的bean的id屬性值
(2)hibernate和spring整合
----hibernate將sessionfactory的例項交給spring來建立(需要注入dataSource)
----在spring的核心配置檔案中引入hibernate.cfg.xml核心配置檔案(也可以將hibernate的核心配置都交給spring來配置,這樣就不需要hibernate的核心配置檔案了)
(3)屬性注入(DI)
----在類中新增要建立的例項類屬性,即set()方法
----將spring建立的物件通過spring的核心配置檔案實現屬性的注入(傳遞)
(4)配置事務管理器,並在service層新增事務註解
三.ssh原理解析
(1)配置檔案
----將各層例項建立移植到配置檔案來建立(IOC),實現解耦和,降低各層之間的關係耦合
(2)BeanFactory
----通過dom4j解析spring的配置檔案,獲取配置檔案中要建立例項的類的全路徑
----然後再通過類的全路徑結合反射機制實現例項的建立
----最後將建立的實體類通過屬性的set()方法傳遞到各層去,完成屬性的注入(或者說例項的傳遞)