版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
知识点列1注解方式实现SSH整合通过案例掌握使用注解方式整合2了解Spring*3AOP*4了解并掌握Spring框架结构*5SpringSpringMVC*6作为课后作业。使用SSH*注 注解方式实现SSH整合 【案例1】注解方式实现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但是,现在我们又遇到一个问题,HibernateUerDAOImpl但是,现在我们又遇到一个问题,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】动态新建工程配置好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实现。 Spring SpringMVC服务器控制器由 HandlerMap将请求映射到对应的处理器Controller(相当于Action)在Spring当中如果写一些处理器组件,一般实现Controller接口如果想将处理结果返回给用户,那么在SpringViewResolver,该组件根据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"那么,从如上步骤中,我们已经完成了SpringMVCDispatcherServlet、<beansxmlns=""""""<beanid="loginControl"<propertyname="commandClass"<!--配置 配置 修改spring-<beanid="urlMap <property <prop<!--定义ViewResolver组件,实现根据视图标识获取JSP<!--定义ViewResolver组件,实现根据视图标识获取JSP<beanid="viewResolver"View<propertyname="viewClass"<propertyname="suffix"<propertyname="prefix" jspLoginControl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度绿化养护合同:物业公司与绿化养护公司之间的绿化养护协议
- 2024年度园林绿化工程信息咨询服务合同
- 2024年度品牌授权合同:某品牌公司与授权商之间的品牌授权协议
- 2024年度建筑项目安全管理合同
- 伯牙绝弦教学课件
- 2024年度墙板定制加工服务协议5篇
- xxxx学校教学楼(技术标)
- 2024年停车场经营承包合同协议书2篇
- 《黄金培训资料》课件
- 2024年度网络服务终止协议书
- 让成长不烦恼小学生青春期性教育
- 5.2探秘人工智能+教学设计
- 公共政策分析的实际案例【4篇】
- 四年级(上)体育课教案
- (完整版)跌倒风险评估量表
- 四川省达州市2024年中考数学试卷【附真题答案】
- 法治与人权智慧树知到期末考试答案章节答案2024年内蒙古大学
- 邮储高级练习卷二(第7章-第11章)附有答案
- 云南省昭通市一中教研联盟高一上学期期末考试数学(B卷)
- JT-T-1116-2017公路铁路并行路段设计技术规范
- 幼儿园中班语言课件:《秋妈妈和果娃娃》
评论
0/150
提交评论