java spring培训教程TP6

上传人:痛*** 文档编号:150735968 上传时间:2022-09-10 格式:PPTX 页数:21 大小:446.33KB
返回 下载 相关 举报
java spring培训教程TP6_第1页
第1页 / 共21页
java spring培训教程TP6_第2页
第2页 / 共21页
java spring培训教程TP6_第3页
第3页 / 共21页
点击查看更多>>
资源描述
第第 六六 章章 Spring 与表现层集成与表现层集成回顾qSpring是如何集成业务逻辑层的?q通过接口实现类的方式解耦业务层与其它层,主要是用到了控制反转(依赖注入)的办法q通过AOP的方法,分离事务、日志等切面操作,让业务逻辑更为清晰qSpring是如何集成持久层的?q通过模板技术,让具体的持久层实现无须考虑如何获得连接,关闭连接(或指session)等繁琐操作,使程序员专心处理数据CURD操作q如果使用了hibernate等持久层框架,DAO就不重要了2表现层集成qSpring可以与多种表现层技术实现集成,其实与表现层集成以我的理解就是业务逻辑如何被调用业务逻辑如何被调用的问题,可以分以下几个方面q与某种Web框架相集成,如Struts,DWR等q与某种java桌面应用程序相集成,如Swing来调用业务逻辑q与某种其它语言的应用程序集成,如.net的程序3与Struts集成q Spring与Struts集成有两种方式:A.使用Struts调用Spring。优点是直接了当,容易理解,缺点是无法使用Spring的依赖注入B.使用Spring来管理Struts中的Action。优点是可以为Action注入业务逻辑实现4与Struts集成q 方法A.使用Struts调用Springq 步骤:1.添加Spring提供的 ContextLoaderListener和contextConfigLocation属性以指明Spring配置文件的位置,其原理是使用了Listener Servlet在Web工程加载的时候载入了ApplicationContext,并将其放入Servlet Context中2.使用Spring提供的 WebApplicationContextUtils从ServletContext中获取 ApplicationContext3.利用ApplicationContext获取业务逻辑Bean4.使用业务逻辑Bean5与Struts集成q如果认为以上步骤3中的方式不够简便,可以选择将你的Action继承自Spring提供的 XXXActionSupport 基类6与Struts集成q 方法B.使用Spring来管理Struts中的Actionq 步骤:1.添加Spring提供的 ContextLoaderListener和contextConfigLocation属性2.为所有Action添加类型为业务逻辑接口的属性和相应的Set方法,为注入做准备7与Struts集成3.为struts-config.xml添加一个插件管理Struts Actions的配置文件管理原有Beans的配置文件8与Struts集成4.配置针对struts action的配置文件,默认路径放在WEB-INF下,默认名称为action-servlet.xmlbean 需要配置name属性,值为Action的路径和以前一样的方式注入业务逻辑bean9与Struts集成5.为struts-config.xml配置,注意也可以选择第六步的方式10与Struts集成6.将struts-config.xml中所有所有action的定义进行修改,注意也可以选择第五步的方式替换11与Struts集成q最终简化办法,在方法B.的第2步后,在struts-config.xml中添加:使用spring 2.0中的新特性,自动“织入”Action所需的业务逻辑Bean默认方式是根据业务逻辑Bean的类型织入的12小结qSpring和Struts的集成方式就是这些了,没有想象中的复杂,严格按照步骤做一定不会错q但话说回来,集成web应用程序中的难点不在于此,而是在于事务及事务及Session的管理的管理13SSH中结合难点q事务何时开始,何时结束qSession何时打开,何时关闭14典型的两种做法A.一个request对应多个事务,每个事务用到一个session,也就是我们现在的做法B.一个request对应多个事务,但只用到一个session,这种做法在以前的课程里也讲过,叫做session per request模式,也可以称之为Open Session In View15A.做法的流程分析q客户端发送请求,经过Action来调用业务逻辑方法A与业务逻辑方法Bq方法A开启Session_A,开始事务A,执行之(中间若有拦截器、Advice等,则根据事务属性可能开启新的事务和连接,下同)q方法A执行成功,事务A提交,Session_A关闭q方法B开启Session_B,开始事务B,执行之q方法B执行成功,事务B提交,Session_B关闭q最后返回响应16B.做法的流程分析q 客户端发送请求,经过Action来调用业务逻辑方法A与业务逻辑方法Bq 开启Session_A,q 方法A开始事务A,执行之(中间若有拦截器、Advice等,则根据事务属性可能开启新的事务或加入当前事务,下同)q 方法A执行成功,事务A提交q 方法B开始事务B,执行之q 方法B执行成功,事务B提交q 返回响应q 最后Session_A关闭17B.做法的优势qB.做法的优势在于有效地利用了Hibernate的一级缓存(因为没有重复打开关闭Session)q但B.的做法仅能在持久层使用 Hibernate或JPA(另外一种几乎和Hibernate完全一样的持久层技术)的情况下使用18Spring如何实现做法B.q一种做法是使用Spring提供的filter,其原理是使用过滤器Servlet在请求来时打开Session,在响应后关闭SessionOpenSessionInViewFilterorg.springframework.orm.hibernate3.support.OpenSessionInViewFilterOpenSessionInViewFilter*.do19与DWR整合q相当简单,整合仅仅涉及到远程Bean的生成方式,原来是每次new一个,现在是使用Spring的Bean工厂产生注意它的去向20ACCP V4.0演讲完毕,谢谢观看!
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!