Spring 學習04
一、上節內容回顧
1 基於aspectj的註解aop操作
2 spring的jdbcTemplate操作
(1)實現crud操作
- 添加、修改、刪除update方法
- 查詢
-- 查詢某個值 queryForObject
-- 查詢對象queryForObject
-- 查詢list query
3 spring配置連接池
(1)配置c3p0連接池
(2)dao註入jdbcTemplate
4 spring事務管理
(1)事務概念
(2)spring進行事務管理api
(3)spring進行事務配置
- 基於xml配置文件
- 基於註解方式
二、今天內容介紹
SSH三大框架整合
(1)struts2
(2)hibernate5.x
(3)spring4.x
三、回顧SSH框架知識點
Hibernate框架
1 hibernate核心配置文件
(0)orm思想
- 對象關系映射
(1)數據庫信息
(2)hibernate信息
(3)映射配置
(4)hibernate核心配置文件
- 如果單純使用hibernate框架,核心配置文件名稱 hibernate.cfg.xml和位置 src下面 固定的
- hibernate和spring整合時候,hibernate核心配置文件名稱和位置沒有固定要求的
2 hibernate映射配置文件
(1)實體類和數據庫表映射關系—使用orm思想
3 hibernate操作的步驟
(1)在spring框架對hibernate框架進行封裝,使用hibernateTemplate
Struts2框架
1 Action操作
(1)action創建三種方式
- 繼承類 ActionSupport
(2)配置action訪問路徑
- 創建struts.xml配置文件,這個文件名稱和位置固定 src下面的
(3)配置訪問action的多個方法
- 使用通配符方式配置
(4)在action獲取表單提交數據
- 獲取request對象
** 使用ServletActionContext類獲取
- 屬性封裝
- 模型驅動(重點)
- 表達式封裝
(5)在action操作域對象
- 使用ServletActionContext獲取域對象
(6)配置struts2的過濾器
2 值棧
(1)向值棧放數據
- set方法
- push方法
- 定義變量,生成get方法
(2)從值棧獲取數據
- 在jsp中使用struts2標簽+ognl獲取
- <s:property>
- <s:iterator>
3 攔截器
(1)aop和責任鏈模式
(2)自定義攔截器
- 繼承MethodFilterInterceptor
- 重寫類裏面的方法
- 配置攔截器和action關聯
Spring框架
1 spring核心配置文件
(1)名稱和位置沒有固定要求
(2)在spring核心配置文件中引入schema約束
2 創建對象
(1)xml配置方式:<bean id=”” class=”” scope=””/>
(2)註解方式:四個註解
3 註入屬性(對象類型屬性)
(1)xml配置方式:
(2)註解方式:兩個註解
- autowired
- resource
3 使用ServletContext對象和監聽器實現
(1)在服務器啟動時候,加載spring配置文件,創建對象
(2)配置spring的監聽器
(3)指定spring配置文件位置
4 jdbcTemplate
5 spring事務配置
(1)xml方式
(2)註解方式
SSH框架整合思想
1 三大框架應用在javaee三層結構
2 struts2框架和spring整合
(1)struts2的action在spring配置
3 spring框架和hibernate框架整合
(1)hibernate的sessionFactory交給spring配置
(2)把hibernate數據庫配置交給spring配置
四、整合struts2和spring框架
1 把struts2的action交給spring管理
2 實現過程
第一步 導入struts2的jar包
(1)導入用於整合的jar包
第二步 創建action
第三步 創建struts2核心配置文件,配置action
(1)位置在src下面,名稱是struts.xml
第四步 配置struts2過濾器
第五步 導入spring的jar包
第六步 創建spring配置文件
(1) 引入約束
(2) 配置spring監聽器
(3) 指定spring配置文件位置
第七步 把action交給spring進行配置(***)
(1)在spring配置action對象,在struts.xml中也配置action對象
(2)解決:
只需要在spring裏面配置action對象,不要在struts.xml中配置
五、Spring框架整合hibernate框架
1 把hibernate核心配置文件中配置數據庫信息,把數據庫信息在spring進行配置
2 把hibernate裏面的sessionFactory創建交給spring管理
具體實現
第一步 導入hibernate的jar包
(1)導入struts2和hibernate的jar包時候有jar沖突問題
在struts2裏面有jar包
在hibernate裏面有jar包
刪除低版本的jar包
(2)導入spring整合持久化層框架需要導入jar包
第二步 搭建hibernate環境搭建
1 創建實體類
2 配置實體類映射關系
3 創建核心配置文件
第三步 把hibernate核心配置文件數據庫配置,在spring進行配置
(1)把hibernate核心文件中數據庫配置去掉了,在spring配置
第四步 把hibernate的sessionFactory交給spring配置
(1)服務器啟動時候,加載spring配置文件,把配置文件中對象創建
(2)把sessionFactory對象創建在spring配置
(3)因為創建sessionFactory代碼不是new出來的,而是多行代碼實現的
(4)spring裏面針對上面情況,封裝類,配置類對象可以創建sessionFactory
第五步 在dao裏面使用hibernateTemplate
(1)在dao得到hibernateTemplate的對象
(2)調用hibernate模板裏面save方法添加
沒有配置事務,做操作時候,出現異常
第六步 配置事務
六、HibernateTemplate介紹
1 HibernateTemplate對hibernate框架進行封裝,
直接調用HibernateTemplate裏面的方法實現功能
2 HibernateTemplate常用的方法
- Serializable save(Object entity) :添加操作
- void update(Object entity) :修改操作
- void delete(Object entity) :刪除操作
- <T> T get(Class<T> entityClass, Serializable id) :根據id查詢
- <T> T load(Class<T> entityClass, Serializable id): 根據id查詢
- List find(String queryString, Object... values) :查詢操作的方法
(1)第一個參數是 hql語句
(2)語句參數值
七、SSH框架整合過程
第一步 導入jar包
第二步 搭建struts2環境
(1)創建action,創建struts.xml配置文件,配置action
(2)配置struts2的過濾器
第三步 搭建hibernate環境
(1)創建實體類
(2)配置實體類和數據庫表映射關系
(3)創建hibernate核心配置文件
- 引入映射配置文件
第四步 搭建spring環境
(1)創建spring核心配置文件
(2)讓spring配置文件在服務器啟動時候加載
- 配置監聽器
- 指定spring配置文件位置
第五步 struts2和spring整合
(1)把action在spring配置(action多實例的)
(2)在struts.xml中action標簽class屬性裏面寫 bean的id值
第六步 spring和hibernate整合
(1)把hibernate核心配置文件中數據庫配置,在spring裏面配置
(2)把hibernate的sessionFactory在spring配置
第七步 在dao裏面使用hibernateTemplate
(1)在dao註入hibernateTemplate對象
(2)在hibernateTemplate對象中註入sessionFactory
第八步 配置事務
出現異常時候,
第一行 異常信息
下面 cased by :
八、整合其他方式
1 spring整合hibernate時候,可以不寫hibernate核心配置文件
(1)把hibernate核心配置文件中,基本信息配置和映射引入都放到spring配置
九、Spring分模塊開發
1 在spring裏面配置多個內容,造成配置混亂,不利用維護
2 把spring核心配置文件中,一部分配置放到單獨的配置文件中,在spring核心配置文件中引入單獨配置文件
問題:
1 在struts2裏面和hibernate裏面都有jar包
Jar包沖突問題,刪除其中的一個,刪除低版本的jar包
2 如果把數據庫信息配置在hibernate裏面進行配置
(1)出現異常,事務裏面找不到數據源了
(2)數據庫配置在spring裏面配置
SSH練習功能
1 客戶管理
(1)crud操作
2 聯系人管理
(1)配置一對多操作
(2)添加聯系人
- 選擇所屬客戶
- struts2實現文件上傳
(3)聯系人列表
(4)修改聯系人
3 客戶拜訪管理
(1)多對多配置拆分成兩個有對多實現
4 綜合查詢
(1)多條件組合查詢
5 統計分析
(1)hibernateTemplate調用底層sql實現功能
6 其他知識
(1)svn版本控制工具使用
(2)代碼重構
- baseDao抽取
(3)插件:jquery easyui
- jquery ajax操作
- json數據格式
完成任務
1 搭建ssh整合環境
2 復習知識
(1)jquery ajax操作
(2)json數據格式
Spring 學習04