姓陆的所有小说男主角:struts2 hibernate spring配置管理(一)——配置文件 - Strut...

来源:百度文库 编辑:中财网 时间:2024/05/05 08:21:49

虽然是简单的用户登录,但东西一点不少,基于MVC原理实现,共分DAO层,SERVICE层,ACTION层和WEB层,其中DAO和SERVICE层都有各自的接口。

今天主要讲解配置文件的代码,我学习实例,喜欢从控制层出发,然后用到了哪些类或者JSP,再一一扯“蛋”扯出来。

当然,还是先看web.xml

xml 代码
  1.   
  2.          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  3.       
  4.       
  5.         contextConfigLocation  
  6.         classpath*:spring/*.xml  
  7.       
  8.   
  9.        
  10.       
  11.       
  12.         encodingFilter  
  13.         org.springframework.web.filter.CharacterEncodingFilter  
  14.           
  15.             encoding  
  16.             UTF-8  
  17.           
  18.       
  19.       
  20.       
  21.         hibernateFilter  
  22.         org.springframework.orm.hibernate3.support.OpenSessionInViewFilter  
  23.       
  24.       
  25.       
  26.         eXtremeExport  
  27.         org.extremecomponents.table.filter.ExportFilter  
  28.       
  29.       
  30.         encodingFilter  
  31.         *.do  
  32.       
  33.       
  34.         encodingFilter  
  35.         *.jsp  
  36.       
  37.       
  38.         hibernateFilter  
  39.         *.do  
  40.       
  41.   
  42.   
  43.       
  44.       
  45.         org.springframework.web.context.ContextLoaderListener  
  46.       
  47.   
  48.       
  49.       
  50.         org.springframework.web.util.IntrospectorCleanupListener  
  51.       
  52.   
  53.        
  54.       
  55.       
  56.         10  
  57.       
  58.   
  59.   
  60.   

 

东西很简单,无非是配置一些过滤器呀,监听器的。主要讲一下openSessionInViewFilter吧,假设在你的应用中Hibernate是通过spring 来管理它的session.如果在你的应用中没有使用OpenSessionInViewFilter或者OpenSessionInViewInterceptor。session会在transaction结束后关闭,此时会抛出session is close 的异常。关于这方面的知识,值得大家去找一下相关资料仔细阅读。

strut2.xml

xml 代码
  1.         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
  2.         "http://struts.apache.org/dtds/struts-2.0.dtd">    
  3.     
  4.            
  5.        
  6.         
  7.           
  8.             /login_success.jsp  
  9.             /login.jsp  
  10.         action>  
  11. package>  
  12.        
  13. struts>  

可能注意到了,这里的Action交给SPRING来管理了。所以我们看一下application.xml的代码吧

xml 代码
  1. xml version="1.0" encoding="UTF-8"?>      
  2. >      
  3.      
  4.       
  5.              
  6.                  
  7.                  
  8.                  
  9.                       
  10.                    
  11.                
  12.                 
  13.                
  14.                       
  15.                
  16.                       
  17.                 
  18.                  
  19.                  
  20.               
  21.                  
  22.               
  23.                  
  24.                      
  25.                  
  26.     bean>      
  27.           
  28.             class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">      
  29.               
  30.                   
  31.         property>      
  32.               
  33.                   
  34.                 org.hibernate.dialect.Oracle9Dialectprop>      
  35.                 trueprop>      
  36.                 trueprop>      
  37.                 autoprop>      
  38.                 trueprop>                   
  39.             props>      
  40.         property>      
  41.                
  42.               
  43.                   
  44.                 classpath:com/caitong/pingou/bean      
  45.             value>      
  46.         list>                               
  47.         property>      
  48.     bean>       
  49.           
  50.               
  51.                     
  52.                         
  53.           property>          
  54.     bean>        
  55.               
  56.               
  57.                   
  58.                 
  59.                     
  60.                       
  61.                 PROPAGATION_REQUIREDprop>        
  62.                 PROPAGATION_REQUIRED,readOnlyprop>        
  63.             props>        
  64.         property>        
  65.     bean>          
  66.                  
  67.              
  68.                 
  69.             *Servicevalue>        
  70.         property>        
  71.                   
  72.                       
  73.                 transactionInterceptorvalue>          
  74.                           
  75.             list>          
  76.         property>          
  77.     bean>          
  78.           
  79.               
  80.                     
  81.     bean>        
  82.           
  83.           
  84.               
  85.                   
  86.         property>      
  87.     bean>      
  88.             class="com.caitong.pingou.dao.impl.UserDAO" parent="baseDAO">      
  89.     bean>      
  90.           
  91.             autowire="byName">      
  92.     bean>      
  93.           
  94.             autowire="byName">      
  95.     bean>      
  96. beans>    

应该说SPRING太强大了,以至于一个配置文件可以解决任何一件事情。简单介绍一下这个配置文件吧,例子用的是c3p0的数据库链接池,hibernate的配置文件也都集成在这里了,如果细心的读者,可能注意到了事务管理模块。是的,本例的事务管理是由spring来管理,而且集中在service层

xml 代码
  1.      
  2.             *Servicevalue>     
  3.         property>   

有人可能提出问题,为什么非得要放在service层,而不是dao层,应该说,事务管理有一个不成文的规定,尽量将问题放在上层处理。
然后每个类由SPRING来管理,并且autowire="byName"来寻找依赖注入的bean。

 

所有的xml文件都已经配置完了,其实最重要也是这个,XML文件将是框架的一个趋势,掌握了它,其实你已经打开了这个框架的门。