版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、SSH 框架 介紹,1,培訓目標,SSH基本概念 認識框架 認識SSH框架 開發(fā)入門,2,認識框架,3,大奔先生,汽車之父和奔馳汽車,奔馳汽車,Karl Friedrich Benz,4,汽車基本結構就是一個框架,車身,發(fā)動機,電氣設備,保時捷,飛機汽車,水上汽車,5,框架是什么?,框架是前輩們多年以來總結出的一些開發(fā)標準;讓后輩可以以成功的經(jīng)驗模式來開發(fā)自已的系統(tǒng)。,6,使用優(yōu)秀框架的好處,易于開發(fā):框架對底層的API進行了封裝,開發(fā)者不需要直接接觸底層的API,只需要寫一些必須的代碼。 結構清晰:清晰的結構使得各模塊功能明確,更易于閱讀,從而使其他開發(fā)者能夠更快加入,也降低了后期維護成本。
2、 易于測試:采用成功的框架的代碼比自己的代碼容易測試。 縮短周期:采用成功的框架能縮短項目的設計、開發(fā)周期。,7,Struts2,SpringMVC,Hibernate,Spring,頁面展示,管理,數(shù)據(jù)庫,MyBatis,8,認識SSH框架,SpringMVC,Hibernate,Spring,SSH,9,Java文件結構,數(shù)據(jù)庫連接、SQL語句,SSH各部分技術負責工作,JSP文件結構,HTML,跳轉,Java文件結構,業(yè)務邏輯代碼,Servlet文件結構,頁面邏輯,Hibernate,SpringMVC,JavaBean,Spring,管理,10,認識SpringMVC,11,什么是MV
3、C,12,電視節(jié)目,電視信號,電視機,13,Model,View1,Controller,View2,View3,模型,控制,視圖,是一種軟件設計典范,通過業(yè)務邏輯、數(shù)據(jù)、界面顯示分離的方法來組織代碼,14,什么是SpringMVC?,SpringMVC是一個典型的教科書式的MVC框架,作用是為了幫助我們減少在運用MVC設計模型來開發(fā)Web應用的時間。 即簡化WEB前端開發(fā)的工具。 同類競爭對手Struts2,15,SpringMVC工作原理,16,認識Hibernate,17,什么是Hibernate?,Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象
4、封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 即把對象操作轉成SQL語句 同類競爭對手Mybatis,18,Hibernate原理,Java應用程序,Hibernate,持久化對象,數(shù)據(jù)庫,SQL,Java應用程序直接對持久化對象作增、刪、改、查操作。 Hibernate會把這些操作解釋成SQL語句。 通過JNDI、JDBC提交SQL到數(shù)據(jù)庫。,1,2,3,19,Hibernate的優(yōu)點,對象/關系數(shù)據(jù)庫映射(ORM),簡化了DAO層編碼工作,使開發(fā)更對象化了,支持透明持久化(Transparent Persistent),它沒有侵入性,即所謂的輕量級框架,移植性會很好
5、,能支持不同類型的數(shù)據(jù)庫系統(tǒng),緩存機制,提供一級緩存和二級緩存,20,認識Spring,21,什么是Spring?,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架,創(chuàng)建的目的是解決企業(yè)應用開發(fā)的復雜性。,22,什么是IOC?,控制反轉(Inversion of Control,英文縮寫為IoC)是一個重要的面向對象編程的法則來削減計算機程序的耦合問題??刂品崔D還有一個名字叫做依賴注入(Dependency Injection),簡稱DI。,23,一個生活中的IOC例子,何金水在某家公司任職,老板要求他負責公司職員日常的飲水問題。老板對金水可以有兩種形式的要求: 第一
6、種是必須只能購買A公司的水。 第二種是只要有水喝就行不管哪家都行。 如果是第一種情況,那么當金水發(fā)現(xiàn)不能在和A公司合作而想轉向購買B公司的水的時候,金水必須要做的一件事情是向老板請示并且征得其同意方可更改賣主。如果是第二種情況,則金水完全不用關心老板的意見就可以決定并且控制這個更改。 老板只對金水提出一個接口要求那就是水,至于從什么地方來,這個過程的更改控制權反轉給了金水。,24,類A,AInterface a,AInterfaceImpA,代碼片段: 類 A AInterface a; A() aMethod() a = new AInterfaceImpA(); ,類A,AInterfac
7、e a,AInterfaceImpB,代碼片段: 類 A AInterface a; A() aMethod() a = new AInterfaceImpB(); ,類 A 和 AinterfaceImplA耦合性太強,25,Class A,AInterface a,AInterfaceImpA,AInterfaceImpB,Ainterface工廠,AInterface create (Object condition),根據(jù)條件condition返回不同的實現(xiàn)類,代碼片段: 類 InterfaceImplFactory AInterface create(Object condition
8、) if(condition = condA) return new AInterfaceImpA(); elseif(condition = condB) return new AInterfaceImpB(); else return new AInterfaceImp(); ,AinterfaceImplA、B 和 Ainterface工廠耦合性太強,26,IOC容器,類A,AInterface a,IOC工廠,XML配置,AInterfaceImpA,1,2,3,IOC工廠自動從XML獲取類描述。 實例化描述中的類。 把實例化的類注入到指定的接口上。 可以把IoC模式看做是工廠模式的升
9、華,可以把IoC看作是一個大工廠,只 不過這個大工廠里要生成的對象都是在XML文件中給出定義的,然后利用 Java 的“反射”編程,根據(jù)XML中給出的類名生成相應的對象。,27,XML配置片段: ,代碼片段: 類 A AInterface a = null; A() 類 AInterfaceImpA 類 AInterfaceImpB,28,WEB容器,Spring IOC容器,如何使用Spring IOC把SpringMVC和Hibernate整合,HinterfaceImpl Hibernate數(shù)據(jù)接口實現(xiàn)類,Hibernate對象注入,JavaBean對象注入,瀏覽器,http請求,htt
10、p返回,29,開發(fā)入門,30,1、開發(fā)環(huán)境搭建 jdk1.7 sts3.6.2 2、項目環(huán)境搭建 導入相關jar包(spring包,Hibernate包,數(shù)據(jù)庫驅動,數(shù)據(jù)源包,測試包等) web.xml配置 spring配置文件配置 springMVC配置文件配置 3、編程開發(fā),31,配置文件介紹 web.xml配置 1、要正常的使用spring必須在web.xml中開啟spring監(jiān)聽器,同時如spring配置文件名稱、位置不是默認,則需要進行配置 2、為避免Hibernate延時加載時因session關閉所產(chǎn)生的異常,通過openSessionInViewFilter配置,將session
11、的開關交由spring進行管理 3、進行DispatcherServlet配置,保證springMVC的正常使用,同時如springMVC配置文件名稱、位置不是默認,則需要進行配置 4、另外還可以進行字符編碼過濾器配置,避免出現(xiàn)亂碼現(xiàn)象等,32,web.xml,33,web.xml,34,配置文件介紹 屬性文件(perties) 數(shù)據(jù)庫連接相關配置信息通常存儲在屬性配置文件中。,35,配置文件介紹 spring配置文件 默認名稱:applicationContext.xml。 默認位置:/WEB-INF/applicationContext.xml。 如果名稱、位置不是在默
12、認位置需在web.xml中進行配置。 在該文件中可以進行如下配置: 1、掃描包目錄配置(同時開啟基于注解方式) 2、屬性文件的導入配置 3、注冊需要spring來管理的類(整合Hibernate,對數(shù)據(jù)源對象與SessionFactory對象進行描述和屬性配置) 4、事務管理配置等,36,spring-hibernate.xml,37,spring-hibernate.xml,38,spring-hibernate.xml,39,配置文件介紹 springMVC配置文件 默認名稱:-servlet.xml。 默認位置:/WEB-INF/-servlet.xml。 如果名稱、位置不是在默認位置需
13、在web.xml中進行配置。 在該文件中可以進行如下配置: 1、掃描包目錄配置(同時開啟基于注解方式) 2、HandlerMapping、HandlerAdapter 注冊 3、viewResolver配置 4、異常頁配置 5、文件上傳配置 6、攔截器配置等,40,springMVC.xml,41,注解,Component(不推薦使用) Repository(value=userDao) Service(userService) Constroller Resource(name = userDao) Autowired Qualifier(userDao)(不推薦使用), , ,42,Use
14、rBean.java,Entity Table(name = tb_user, catalog=db_ssh)/DB2數(shù)據(jù)庫schema=DB public class UserBean private int id;private String userName; private String password; private Date createDate; public UserBean() public UserBean(String userName, String password, Date createDate) this.userName = userName;this.p
15、assword = password; this.createDate = createDate; Id GeneratedValue public int getId() return id; public void setId(int id) this.id = id; public String getUserName() return userName; public void setUserName(String userName) this.userName = userName; public String getPassword() return password; publi
16、c void setPassword(String password) this.password = password; Column(name=create_date, nullable = false, length = 7) public Date getCreateDate() return createDate; JsonFormat(timezone=GMT+08:00,pattern=yyyy-MM-dd HH:mm:ss) public void setCreateDate(Date createDate) this.createDate = createDate; ,43,
17、UserDao.java,Repository(userDao) public class UserDao implements IUserDao private SessionFactory sessionFactory; public SessionFactory getSessionFactory() return sessionFactory; Autowired public void setSessionFactory(SessionFactory sessionFactory) this.sessionFactory = sessionFactory; private Sessi
18、on getCurrentSession() return this.sessionFactory.getCurrentSession(); Override public Serializable save(UserBean userBean) return this.getCurrentSession().save(userBean); ,public interface IUserDao public Serializable save(UserBean userBean); ,44,UserService.java,Service(userService) public class U
19、serService implements IUserService private IUserDao userDao; public IUserDao getUserDao() return userDao; Resource public void setUserDao(IUserDao userDao) this.userDao = userDao; Override public Serializable save(UserBean userBean) userBean.setCreateDate(new Date(); userBean.setPassword(SecurityUtil.md5(userBean.getPassword(); return userDao.save(userBean); ,public
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年河北省承德市輔警人員招聘考試試卷及答案
- 2025-2026年蘇教版九年級語文上冊期末試題庫及答案
- 道教針灸絕技培訓課件
- 道德與法治培訓課件
- 2025體外循環(huán)在成人心臟手術應用指南解讀課件
- 《光的色散》物理授課課件
- 鐵嶺衛(wèi)生職業(yè)學院歷年單招考試題
- 車險客服培訓課件
- 車隊年后復工安全培訓課件
- 母嬰室升級改造方案范文
- 【一例擴張型心肌病合并心力衰竭患者的個案護理】5400字【論文】
- 四川橋梁工程系梁專項施工方案
- DB32T 3695-2019房屋面積測算技術規(guī)程
- 貴州省納雍縣水東鄉(xiāng)水東鉬鎳礦采礦權評估報告
- GB 8270-2014食品安全國家標準食品添加劑甜菊糖苷
- 2023年杭州臨平環(huán)境科技有限公司招聘筆試題庫及答案解析
- 易制毒化學品日常管理有關問題權威解釋和答疑
- LF爐機械設備安裝施工方案
- 湖北省高等教育自學考試
- 企業(yè)三級安全生產(chǎn)標準化評定表(新版)
- 中心衛(wèi)生院關于成立按病種分值付費(DIP)工作領導小組及制度的通知
評論
0/150
提交評論