下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
知識點列1注解方式實現(xiàn)SSH整合通過案例掌握使用注解方式整合2了解Spring*3AOP*4了解并掌握Spring框架結(jié)構(gòu)*5SpringSpringMVC*6作為課后作業(yè)。使用SSH*注 注解方式實現(xiàn)SSH整合 【案例1】注解方式實現(xiàn)SSH整合 Spring管理事務(wù)的策略 AOP動 【案例2】動 Spring框架結(jié)構(gòu) SpringMVC 【案例3】SpringMVC ssh2重構(gòu)當當注意事項 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服務(wù)器的common/lib 刪除項目中的mysql的Jar將mysql的jar包拷貝到tomcat服務(wù)器的 13)測試(略(案例結(jié)束Spring管理事務(wù)的策略 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=}}運行(案例結(jié)束Spring框架結(jié)構(gòu)我們在使用學習Spring框架時,只是重點介紹了IoC和AOP,這只是Spring強大功能的Core(TheIoCCore(TheIoCcontainer)AOPSpringSpring對JDBC的整合,屬于DAO 該封裝包提供了基礎(chǔ)的針對web此外Spring也提供了一種MVC實現(xiàn)。 Spring SpringMVC服務(wù)器控制器由 HandlerMap將請求映射到對應(yīng)的處理器Controller(相當于Action)在Spring當中如果寫一些處理器組件,一般實現(xiàn)Controller接口如果想將處理結(jié)果返回給用戶,那么在SpringViewResolver,該組件根據(jù)Controller返回的標示,找到對應(yīng)的試圖,將響應(yīng)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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職機械(模具裝配調(diào)試)試題及答案
- 2025-2026年三年級科學(專項訓練)上學期期中試題及答案
- 2025年高職食品檢驗檢測技術(shù)(食品檢驗應(yīng)用)試題及答案
- 2026年主持詞寫作(主持詞撰寫技巧)試題及答案
- 2025年高職會計學(中級財務(wù)會計)試題及答案
- 2026年中職第一學年(商務(wù)助理)商務(wù)文書寫作階段測試題及答案
- 2026年教育產(chǎn)業(yè)(教育發(fā)展)考題及答案
- 2025年高職(旅游管理)旅游規(guī)劃設(shè)計試題及答案
- 2025年大學(人類學)都市人類學期末試題及答案
- 2025年中職工程造價(工程造價軟件應(yīng)用)試題及答案
- 2026年空氣污染監(jiān)測方法培訓課件
- 實習2025年實習實習期轉(zhuǎn)正協(xié)議合同
- 2025年鮑魚養(yǎng)殖合作協(xié)議合同協(xié)議
- 2025智慧消防行業(yè)市場深度調(diào)研及發(fā)展趨勢與投資前景預測研究報告
- 船舶入股協(xié)議書范本
- 腎病綜合征護理診斷與護理措施
- 《好的教育》讀書心得ppt
- 立體構(gòu)成-塊材課件
- 純化水再驗證方案
- 神泣命令代碼
- 四年級《上下五千年》閱讀測試題及答案
評論
0/150
提交評論