java spring培训教程TP6

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

最新文档


当前位置:首页 > 图纸专区 > 大学资料


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

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


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