77范文网 - 专业文章范例文档资料分享平台

Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解 - 图文(2)

来源:网络收集 时间:2020-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

上面这个就是使用配置式来定义事务,两种方式的区别主要是,注解式只用写那么一句话,然后在业务类或方法中加入@Transactional这个注解标记,就完成事务声明,不过对于每个业务类都需要在类或方法中加入这些标记。而配置式声明,就是不用加这些标记,只要你的方法名称命名比较统一,就可以像上面这样定义事务规范,然后在aop标签中定义切入点与执行通知就行了。我感觉如果业务逻辑不是太复杂的情况,配置式会比较简单,而且修改起来也方便,这两种方式我都写出来了,至于用哪一种,由你们自己决定。 3、web.xml

现在使用的Servlet容器还是2.4版,因此web.xml里面还是需要写配置文件的,到了3.0版就可以采取注解的方式来实现了。

Spring ApplicationContext配置文件的路径,可使用通配符,applicationContext*.xml表

示所有以applicationContext开头的xml文件。多个路径用,号分隔。比如可以这样写:

不过推荐采用通配符的写法,能够简单点,为什么还要弄那么复杂呢?

context-param是在容器启动后最先被执行的,并且被放入到容器上下文中。在这里引入spring的配置文件,是供Spring的ContextLoaderListener监听器使用。而这个监听器中会有一个ContextLoade类用来获取这个配置文件中的信息。从而进行Spring容器的初始化工作。因为是采用注解的方式来进行开发,所以spring的配置文件其实只有一个,上面那个星号可以去掉。

这个监听器就是为了读取Spring的配置文件,这在上面已经讲到了。

这是Spring提供的一个用来防止内存泄漏的监听器。在我们使用struts2框架,或其它的某些类库时,因为它们自身的设计,会用到Introspector(内省)机制来获取Bean对象的信息。但不幸的是,这些框架或类库在分析完一个类之后却没有将它从内存中清除掉,内存中还保留有大量的静态资源,而这些东西又无法进行垃圾回收,因此产生了很严重的内存泄漏问题。直接表现为服务器的内存使用会随着时间而不断上升,最后的结果当然就是服务器当掉。所以在这里加入此监听器,能够帮助我们更好的处理内存资源回收的问题。

这是Spring的编码过滤器,我们可以直接拿来用,相信这段配置应该很好理解,不过请大家注意

forceEncoding这个参数,把它设置为true表示不管请求中的编码是什么格式,都将强制采用

encoding中设置的编码方式。另外对于响应也将按照encoding指定的编码进行设置。另外不建议将编码设置成gb2312或是gbk格式,请采用基于Unicode的UTF-8编码。

这个过滤器是个好东西,有了它,我们在使用Hibernate延迟加载的时候,就不会再为因Session被关闭,导致延迟加载数据异常而头痛了。网上有很多人说这个不好,其实在使用中,效果还是不错的。

首先我要说这个过滤器的名字很雷,不知道写这类的家伙是不是个变态,或者喜欢恶搞。主要原因就是,这个过滤器的功能是推迟清理值栈中的值,以便在web层中进行访问,另外就是为了配合SiteMesh装饰器进行工作(官方中的说明)。如果不加这个,那么Struts2的默认过滤器就会清空值栈中的值,这样就会导致异常。所以说这类的名字和功能完全不搭边,很容易让人产生误解。

在2.1.6版本里面,已经用这个过滤器取代了以前的FilterDispatcher,而且在api文档中已经标

注为@deprecated(不赞成),并说明是从Struts 2.1.3版开始就弃用这个过滤器了,改用StrutsPrepareAndExecuteFilter,除此之外,还可以选择StrutsPrepareFilter和StrutsExecuteFilter。不过大象建议大家还是选择StrutsPrepareAndExecuteFilter吧,这也是官方推荐的。

web.xml里面的几个重要的配置就这些,不过不要忘了,给这些filter加上filter-mapping映射。还有一点,请注意这些过滤器的顺序,这个顺序是很重要的,程序运行时,是根据这些filter-mapping的排列顺序依次执行过滤操作的。如果不想出现莫名其妙的错误,请控制好这些过滤器映射的顺序。 我会在最后一章附上源码,大家就这样慢慢看吧。看到最后一章的时候,可能这些相关的知识就比较清楚了。到时再对照源码练习下,应该会有一些收获。恩,这部分就到此结束了,我们下次继续。 本文为菠萝大象原创,如要转载请注明出处。http://bolo.blogjava.net/

Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(三)

在前两章我为大家详细分析了JAR包的选择和必须的配置文件,那么这一章,我就对例子的层次结构进行说明,并实现除WEB层的功能代码。

第三部分:建立框架代码

工程结构

大家可以看到,本例一共分为:dao、entity、service、web四层。另外在这些层次下,还以业务功能再进行分包,这样做是为了方便在以后的功能扩展中,能更好的管理和维护代码。如果将所有类都直接集中在这4个包下面,随着类的增加,会越来越难以维护,而且查找起来也很费劲。

HibernateDao

在本例中,我是通过继承Spring提供的HibernateDaoSupport来实现持久层的基类。同时引入泛型参数,封装了一些基本操作方法。

这是HibernateDao的部分代码,引入的这个泛型参数,其实就是实体类(User、Role)。通过传递这个实体类,在构造方法中利用反射特性将它从JVM中取出来。

这里的getClass()方法是获得继承HibernateDao的类(UserDao、RoleDao)

getGenericSuperclass()方法就是通过这些继承了HibernateDao的类,来得到父类(父类就是

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解 - 图文(2)在线全文阅读。

Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解 - 图文(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1006357.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: