struts2 hibernate spring配置管理(一)

来源:百度文库 编辑:神马文学网 时间:2024/04/27 17:49:37
虽然是简单的用户登录,但东西一点不少,基于MVC原理实现,共分DAO层,SERVICE层,ACTION层和WEB层,其中DAO和SERVICE层都有各自的接口。
今天主要讲解配置文件的代码,我学习实例,喜欢从控制层出发,然后用到了哪些类或者JSP,再一一扯“蛋”扯出来。
当然,还是先看web.xml
xml 代码
                            contextConfigLocation           classpath*:spring/*.xml                                           encodingFilter           org.springframework.web.filter.CharacterEncodingFilter                          encoding               UTF-8                                           hibernateFilter           org.springframework.orm.hibernate3.support.OpenSessionInViewFilter                                eXtremeExport           org.extremecomponents.table.filter.ExportFilter                         encodingFilter           *.do                         encodingFilter           *.jsp                         hibernateFilter           *.do                                      org.springframework.web.context.ContextLoaderListener                                   org.springframework.web.util.IntrospectorCleanupListener                                           10            
东西很简单,无非是配置一些过滤器呀,监听器的。主要讲一下openSessionInViewFilter吧,假设在你的应用中Hibernate是通过spring 来管理它的session.如果在你的应用中没有使用OpenSessionInViewFilter或者OpenSessionInViewInterceptor。session会在transaction结束后关闭,此时会抛出session is close 的异常。关于这方面的知识,值得大家去找一下相关资料仔细阅读。
strut2.xml
xml 代码
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"            "http://struts.apache.org/dtds/struts-2.0.dtd">                                                              /login_success.jspresult>               /login.jspresult>           action>   package>           struts>
可能注意到了,这里的Action交给SPRING来管理了。所以我们看一下application.xml的代码吧
xml 代码
xml version="1.0" encoding="UTF-8"?>       >                                                                                                                                                                                                                                                                                                                                                                                                                     bean>                                                                       property>                                                         org.hibernate.dialect.Oracle9Dialectprop>                       trueprop>                       trueprop>                       autoprop>                       trueprop>                                props>               property>                                                                         classpath:com/caitong/pingou/bean                   value>               list>                                        property>           bean>                                                                                          property>               bean>                                                                                                                                       PROPAGATION_REQUIREDprop>                         PROPAGATION_REQUIRED,readOnlyprop>                     props>                 property>             bean>                                                                        *Servicevalue>                 property>                                                                   transactionInterceptorvalue>                                                  list>                   property>               bean>                                                              bean>                                                                         property>           bean>                      bean>                                 bean>                                 bean>       beans>
应该说SPRING太强大了,以至于一个配置文件可以解决任何一件事情。简单介绍一下这个配置文件吧,例子用的是c3p0的数据库链接池,hibernate的配置文件也都集成在这里了,如果细心的读者,可能注意到了事务管理模块。是的,本例的事务管理是由spring来管理,而且集中在service层
xml 代码
                  *Servicevalue>              property>
有人可能提出问题,为什么非得要放在service层,而不是dao层,应该说,事务管理有一个不成文的规定,尽量将问题放在上层处理。
然后每个类由SPRING来管理,并且autowire="byName"来寻找依赖注入的bean。
所有的xml文件都已经配置完了,其实最重要也是这个,XML文件将是框架的一个趋势,掌握了它,其实你已经打开了这个框架的门。