![達(dá)內(nèi)-java視頻spring day通過(guò)案例掌握使用注解方式整合_第1頁(yè)](http://file4.renrendoc.com/view/e33d27f2e3bd02628ed24934ef103f63/e33d27f2e3bd02628ed24934ef103f631.gif)
![達(dá)內(nèi)-java視頻spring day通過(guò)案例掌握使用注解方式整合_第2頁(yè)](http://file4.renrendoc.com/view/e33d27f2e3bd02628ed24934ef103f63/e33d27f2e3bd02628ed24934ef103f632.gif)
![達(dá)內(nèi)-java視頻spring day通過(guò)案例掌握使用注解方式整合_第3頁(yè)](http://file4.renrendoc.com/view/e33d27f2e3bd02628ed24934ef103f63/e33d27f2e3bd02628ed24934ef103f633.gif)
![達(dá)內(nèi)-java視頻spring day通過(guò)案例掌握使用注解方式整合_第4頁(yè)](http://file4.renrendoc.com/view/e33d27f2e3bd02628ed24934ef103f63/e33d27f2e3bd02628ed24934ef103f634.gif)
![達(dá)內(nèi)-java視頻spring day通過(guò)案例掌握使用注解方式整合_第5頁(yè)](http://file4.renrendoc.com/view/e33d27f2e3bd02628ed24934ef103f63/e33d27f2e3bd02628ed24934ef103f635.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
知識(shí)點(diǎn)列1注解方式實(shí)現(xiàn)SSH整合通過(guò)案例掌握使用注解方式整合2了解Spring*3AOP*4了解并掌握Spring框架結(jié)構(gòu)*5SpringSpringMVC*6作為課后作業(yè)。使用SSH*注 注解方式實(shí)現(xiàn)SSH整合 【案例1】注解方式實(shí)現(xiàn)SSH整合 Spring管理事務(wù)的策略 AOP動(dòng) 【案例2】動(dòng) Spring框架結(jié)構(gòu) SpringMVC 【案例3】SpringMVC ssh2重構(gòu)當(dāng)當(dāng)注意事項(xiàng) SSH整合1SSH整合拷貝spring4spring5請(qǐng)spring4首先我們開(kāi)啟組件掃描,將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)在我們又遇到一個(gè)問(wèn)題,HibernateUerDAOImpl但是,現(xiàn)在我們又遇到一個(gè)問(wèn)題,HibernateUerDAOImplSessionFactory,那么我們需要將SessionFactory注入到其中。 修改隨便寫(xiě)一個(gè)方法,這樣我們就可以使用注解@Resource從Springbean名為mySessionFactory;取出SessionFactoryHibernateUserSupportset(super.setSessionFactory(sessionFactory)),sessionFactory象。最后,如此兩個(gè)步驟,我們就完成了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)部署項(xiàng)目 步驟1,將項(xiàng)目中的mysql的Jar包mysql-connector-java-5.1.8-bin.jar刪除步驟2,拷貝該mysql的Jar包到Tomcat服務(wù)器的common/lib 刪除項(xiàng)目中的mysql的Jar將mysql的jar包拷貝到tomcat服務(wù)器的 13)測(cè)試(略(案例結(jié)束Spring管理事務(wù)的策略 AOP動(dòng) 動(dòng) 采用了AOP后,容器返回的對(duì)象 如果目標(biāo)對(duì)象有接口,采用如果目標(biāo)對(duì)象沒(méi)有接口,采用CGLIB【案例2】動(dòng)態(tài)新建工程配置好springpackagepackagepublicinterface{publicvoidpublicvoid}packagepackageimportpublicclassTest01publicvoidUserServiceuserService=newUserServiceImpl();}packageproxy;publicclassUserServiceImplimplementsUserServicepublicvoid{}publicvoidsave()}}新建測(cè)試類(lèi)}} 運(yùn)行 動(dòng) 新建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=}}}運(yùn)行如果沒(méi)有接口,比如更新部門(mén)時(shí),只有DeptServiceImplDeptService修改修改packageimportpublicclassTest01 publicvoidtestJDKProxy()throwsExceptionJDKProxyFactoryproxyFactory=JDKProxyFactory.getInstance();UserServiceuserService=}voidtestJDKProxy1()throwsJDKProxyFactoryproxyFactory=JDKProxyFactory.getInstance();DeptServiceImpldeptService=packagepublicclassDeptServiceImplpublic{}publicvoid}}測(cè)試在沒(méi)有接口情況下,使用JDK會(huì)出錯(cuò)的情新建}}}運(yùn)行這種情況下,我們就需要使用這種情況下,我們就需要使用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=}}運(yùn)行(案例結(jié)束Spring框架結(jié)構(gòu)我們?cè)谑褂脤W(xué)習(xí)Spring框架時(shí),只是重點(diǎn)介紹了IoC和AOP,這只是Spring強(qiáng)大功能的Core(TheIoCCore(TheIoCcontainer)AOPSpringSpring對(duì)JDBC的整合,屬于DAO 該封裝包提供了基礎(chǔ)的針對(duì)web此外Spring也提供了一種MVC實(shí)現(xiàn)。 Spring SpringMVC服務(wù)器控制器由 HandlerMap將請(qǐng)求映射到對(duì)應(yīng)的處理器Controller(相當(dāng)于Action)在Spring當(dāng)中如果寫(xiě)一些處理器組件,一般實(shí)現(xiàn)Controller接口如果想將處理結(jié)果返回給用戶(hù),那么在SpringViewResolver,該組件根據(jù)Controller返回的標(biāo)示,找到對(duì)應(yīng)的試圖,將響應(yīng)response返回給用戶(hù)處理3】SpringMVC新建工程導(dǎo)入Jar首先配置<?<?xmlversion="1.0"encoding="UTF-<web-app" 配 控制器 <?xmlversion<?xmlversion="1.0"encoding="UTF-<beansxmlns=""""""和之前的Spring寫(xiě)視圖View(jsp 新建視圖頁(yè)面 同時(shí)actionlogin.do<%@pagecontentType="text/html;charset=utf-isELIgnored="false"pageEncoding="utf-<title>Inserttitle<formaction="login.do"用戶(hù)名:<inputtype="text" :<inputtype="text"" 新建視圖頁(yè)面<%@<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"接下來(lái)新建Controller,返回值是ModelAndViewpackagepackageimportimportimportimportpublicclassLoginControlimplementsControllerHttpServletResponsearg1)throwsException ()相當(dāng)于 ==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組件,實(shí)現(xiàn)根據(jù)視圖標(biāo)識(shí)獲取JSP<!--定義ViewResolver組件,實(shí)現(xiàn)根據(jù)視圖標(biāo)識(shí)獲取JSP<beanid="viewResolver"View<propertyname="viewClass"<propertyname="suffix"<propertyname="prefix" jspLoginControl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- MCN解除合同范本
- 客運(yùn)線(xiàn)路租賃承包合同范本
- 買(mǎi)二手車(chē)付定金合同范本
- 廣告加工制作合同范本
- 公會(huì)運(yùn)營(yíng)合作合同范本
- 工地圍墻工程建設(shè)施工合同
- 出租車(chē)股權(quán)合同范本
- 2025年農(nóng)村電網(wǎng)改造升級(jí)供電合同范本
- 2024-2025年中國(guó)聚氨酯建筑用保溫材料行業(yè)市場(chǎng)行情動(dòng)態(tài)分析及發(fā)展前景趨勢(shì)預(yù)測(cè)報(bào)告
- 2025年升級(jí)版計(jì)件制勞動(dòng)合同(新能源行業(yè))
- 2024-2025學(xué)年中小學(xué)校第二學(xué)期師德師風(fēng)工作計(jì)劃:必看!新學(xué)期師德師風(fēng)建設(shè)秘籍大公開(kāi)(附2月-7月工作安排表)
- 《急性心力衰竭的急救處理》課件
- 小學(xué)六年級(jí)數(shù)學(xué)上冊(cè)《簡(jiǎn)便計(jì)算》練習(xí)題(310題-附答案)
- 青海省西寧市海湖中學(xué)2025屆中考生物仿真試卷含解析
- 2024年河南省《輔警招聘考試必刷500題》考試題庫(kù)及答案【全優(yōu)】
- -情景交際-中考英語(yǔ)復(fù)習(xí)考點(diǎn)
- 安全隱患報(bào)告和舉報(bào)獎(jiǎng)勵(lì)制度
- 地理標(biāo)志培訓(xùn)課件
- 2023行政主管年終工作報(bào)告五篇
- 2024年中國(guó)養(yǎng)老產(chǎn)業(yè)商學(xué)研究報(bào)告-銀發(fā)經(jīng)濟(jì)專(zhuān)題
- GA/T 1003-2024銀行自助服務(wù)亭技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論