版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
知識點列1注解方式實現(xiàn)SSH整合通過案例掌握使用注解方式整合2了解Spring*3AOP*4了解并掌握Spring框架結構*5SpringSpringMVC*6作為課后作業(yè)。使用SSH*注 注解方式實現(xiàn)SSH整合 【案例1】注解方式實現(xiàn)SSH整合 Spring管理事務的策略 AOP動 【案例2】動 Spring框架結構 SpringMVC 【案例3】SpringMVC ssh2重構當當注意事項 SSH整合1SSH整合拷貝spring4spring5請spring4首先我們開啟組件掃描,將bean<beansxmlns="<bean <propertyname="url"<propertyname="username"<propertyname="password"<propertyname="maxActive"<propertyname="initialSize"<beanid="mySessionFactory"<propertyname="dataSource"<property <property<propkey="hibernate.dialect"><prop<prop<beanid="userDao"<beanid="userService"<propertyname="userDao" <bean<tx:adviceid="txAdvice"transaction-<tx:methodname="save*"<tx:methodname="update*"<tx:methodname="delete*"<tx:methodname="find*"read-only="true"<tx:methodname="*",所以修改packageimportimportpackageimportimportimportimportpublicclassUserServiceImplimplementsUserServiceprivateprivateUserDAOpublicUserDAOgetUserDao()return}publicvoidsetUserDao(UserDAOuserDao)this.userDao=}publicbooleanfindLogin(Useruser)UserusrUserusr=if(usr!=eturn}}return}}}}修改加入注解,將DAObeanSpringpackageimportimportimportimportimportpublicclassextendsHibernateDaoSupportimplementsUserDAOpublicUser {Stringhql="fromUserpackagepackageimportimportimportimportimportpublicclassUserServiceImplimplementsUserServiceprivateUserDAOpublicUserDAOgetUserDao(){returnpublicvoidsetUserDao(UserDAOuserDao)this.userDao=publicbooleanfindLogin(Useruser)Userusr=if(usr!=List<User>listList<User>listUseruser=user=}return}}}}修改加入注解,將DAOService}}}return}}return但是,現(xiàn)在我們又遇到一個問題,HibernateUerDAOImpl但是,現(xiàn)在我們又遇到一個問題,HibernateUerDAOImplSessionFactory,那么我們需要將SessionFactory注入到其中。 修改隨便寫一個方法,這樣我們就可以使用注解@Resource從Springbean名為mySessionFactory;取出SessionFactoryHibernateUserSupportset(super.setSessionFactory(sessionFactory)),sessionFactory象。最后,如此兩個步驟,我們就完成了sessionFactory的注入。packageimportimportimportimportimportimportimportpublicclassextendsHibernateDaoSupportimplementsUserDAO}public}publicUser){{Stringhql="fromUser=?";List<User>listthis.getHibernateTemplate().find(hql,newObject[]{ Useruser=null;user=}return}}}}<bean<bean <propertyname="url"<propertyname="username"<propertyname="password"<propertyname="maxActive"<propertyname="initialSize"<beanid="mySessionFactory"<propertyname="dataSource"<property <property<propkey="hibernate.dialect"><prop<prop <beanid="txManager"<propertyname="sessionFactory"<tx:methodname="save*"<tx:methodname="update*"<tx:methodname="delete*"<tx:methodname="find*"read-only="true"<tx:methodname="*"修改packagepackagepublicclassUserServiceImplimplementsUserServiceprivateUserDAO}publicvoid}}eturn}}returnUserusr=if(usr!=publicbooleanfindLogin(Useruser)publicUserDAOgetUserDao()return}publicvoidsetUserDao(UserDAOuserDao)this.userDao=}新建ssh-<beans"""""<bean <propertyname="url"<propertyname="username"<propertyname="password"<propertyname="maxActive"<propertyname="initialSize"<beanid="mySessionFactory"<propertyname="dataSource"<property <property<propkey="hibernate.dialect"><prop<prop<web-app" 11)修改新建ssh-<beansxmlns=" <beanid="txManager"12)部署項目 步驟1,將項目中的mysql的Jar包mysql-connector-java-5.1.8-bin.jar刪除步驟2,拷貝該mysql的Jar包到Tomcat服務器的common/lib 刪除項目中的mysql的Jar將mysql的jar包拷貝到tomcat服務器的 13)測試(略(案例結束Spring管理事務的策略 AOP動 動 采用了AOP后,容器返回的對象 如果目標對象有接口,采用如果目標對象沒有接口,采用CGLIB【案例2】動態(tài)新建工程配置好springpackagepackagepublicinterface{publicvoidpublicvoid}packagepackageimportpublicclassTest01publicvoidUserServiceuserService=newUserServiceImpl();}packageproxy;publicclassUserServiceImplimplementsUserServicepublicvoid{}publicvoidsave()}}新建測試類}} 運行 動 新建packageimportimportimportpublicclassJDKProxyFactoryimplementsprivateObjectprivateJDKProxyFactory()publicstaticJDKProxyFactoryreturnnew} publicObjectgetProxy(Classclazz)throwstargetclazz.newInstance(); oader(),clazz.getInterfaces(),this);return} @param@param@param@throwspublicObjectinvoke(Objectproxy,Methodmethod,Object[]{ObjectretVal=retValmethod.invoke(target,params);{}return}}packagepackageimportimportpublicclassTest01 publicvoidUserServiceuserService=newUserServiceImpl();}publicpublicvoidtestJDKProxy()throwsExceptionJDKProxyFactoryproxyFactory=JDKProxyFactory.getInstance();UserServiceuserService=}}}運行如果沒有接口,比如更新部門時,只有DeptServiceImplDeptService修改修改packageimportpublicclassTest01 publicvoidtestJDKProxy()throwsExceptionJDKProxyFactoryproxyFactory=JDKProxyFactory.getInstance();UserServiceuserService=}voidtestJDKProxy1()throwsJDKProxyFactoryproxyFactory=JDKProxyFactory.getInstance();DeptServiceImpldeptService=packagepublicclassDeptServiceImplpublic{}publicvoid}}測試在沒有接口情況下,使用JDK會出錯的情新建}}}運行這種情況下,我們就需要使用這種情況下,我們就需要使用13)新建packageimportimportimportimportpublicclassCGLIBProxyFactoryimplementsprivateObjectprivatepublicstaticCGLIBProxyFactoryreturnnew}}}publicObjectgetProxy(Classclazz)throwsException{target=clazz.newInstance();Enhancerenhancer=newEnhancer();return}publicObjectintercept(Objectproxy,Methodmethod,Object[]params,MethodProxymethodProxy)throwsThrowableObjectretVal=null;retVal=method.invoke(target,System.out.println(}return}修改packagepackageproxy;publicclassTest01 publicvoidtestJDKProxy()throwsExceptionUserServiceuserService=} publicvoidtestJDKProxy1()throwsDeptServiceImpldeptService=}voidtestGglibProxy()throwsDeptServiceImpldeptService=}}運行(案例結束Spring框架結構我們在使用學習Spring框架時,只是重點介紹了IoC和AOP,這只是Spring強大功能的Core(TheIoCCore(TheIoCcontainer)AOPSpringSpring對JDBC的整合,屬于DAO 該封裝包提供了基礎的針對web此外Spring也提供了一種MVC實現(xiàn)。 Spring SpringMVC服務器控制器由 HandlerMap將請求映射到對應的處理器Controller(相當于Action)在Spring當中如果寫一些處理器組件,一般實現(xiàn)Controller接口如果想將處理結果返回給用戶,那么在SpringViewResolver,該組件根據(jù)Controller返回的標示,找到對應的試圖,將響應response返回給用戶處理3】SpringMVC新建工程導入Jar首先配置<?<?xmlversion="1.0"encoding="UTF-<web-app" 配 控制器 <?xmlversion<?xmlversion="1.0"encoding="UTF-<beansxmlns=""""""和之前的Spring寫視圖View(jsp 新建視圖頁面 同時actionlogin.do<%@pagecontentType="text/html;charset=utf-isELIgnored="false"pageEncoding="utf-<title>Inserttitle<formaction="login.do"用戶名:<inputtype="text" :<inputtype="text"" 新建視圖頁面<%@<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"接下來新建Controller,返回值是ModelAndViewpackagepackageimportimportimportimportpublicclassLoginControlimplementsControllerHttpServletResponsearg1)throwsException ()相當于 ==StringpasswordStringpassword=)&&&&returnnew}returnnew}}}}<?xmlversion<?xmlversion="1.0"encoding="UTF-<beansxmlns=""""""<<beanid="loginControl"那么,從如上步驟中,我們已經(jīng)完成了SpringMVCDispatcherServlet、<beansxmlns=""""""<beanid="loginControl"<propertyname="commandClass"<!--配置 配置 修改spring-<beanid="urlMap <property <prop<!--定義ViewResolver組件,實現(xiàn)根據(jù)視圖標識獲取JSP<!--定義ViewResolver組件,實現(xiàn)根據(jù)視圖標識獲取JSP<beanid="viewResolver"View<propertyname="viewClass"<propertyname="suffix"<propertyname="prefix" jspLoginControl
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度水利工程合同擔保及質量監(jiān)督合同范本3篇
- 2025年度木托板環(huán)保認證與市場準入合同3篇
- 二零二五年度員工特殊貢獻獎勵借款合同2篇
- 二零二五年度定制家具設計與全球供應鏈管理合同3篇
- 2025版石料運輸與保險服務合同2篇
- 二零二五年度技術轉讓的具體協(xié)議3篇
- 2025年金融產(chǎn)品居間推廣委托合同3篇
- 2025版環(huán)保企業(yè)兼職環(huán)保工程師服務協(xié)議3篇
- 海南衛(wèi)生健康職業(yè)學院《國際經(jīng)濟法律實務》2023-2024學年第一學期期末試卷
- 二零二五年度辦事處國際合作與交流合同
- 電影項目策劃書
- 供電公司應急演練培訓
- 年項目經(jīng)理講安全課
- 如何防范勒索軟件和網(wǎng)絡勒索攻擊
- 國際標準IQ測試題及答案樣本
- 美容院管理制度章程
- 七年級下冊英語單詞默寫表直接打印
- 讀書分享遙遠的救世主
- 貴州省黔南布依族苗族自治州2023-2024學年九年級上學期期末數(shù)學試題(含答案)
- 通信安全生產(chǎn)培訓課件
- 《新疆大學版學術期刊目錄》(人文社科)
評論
0/150
提交評論