三大框架SSH(struts2+spring+hibernate)整合时相关配置文件的模板

最近在学SSH三大框架的整合,在此对他们整合时相关配置文件做一简单的模板总结,方便以后复用!微笑

        首先是web.xml配置文件,这里面就配置一些简单的监听器、过滤器,包括spring核心配置文件applicationContext.xml的路径:

web.xml

[html] view plaincopy
 
  1. <span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">  
  3.     
  4.   <listener>  
  5.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  6.   </listener>  
  7.     
  8.   <context-param>  
  9.     <param-name>contextConfigLocation</param-name>  
  10.     <param-value>classpath:applicationContext.xml</param-value>  
  11.   </context-param>  
  12.     
  13.   <filter>  
  14.     <filter-name>struts2</filter-name>  
  15.     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  16.   </filter>  
  17.     
  18.   <filter-mapping>  
  19.     <filter-name>struts2</filter-name>  
  20.     <url-pattern>/*</url-pattern>  
  21.   </filter-mapping>  
  22.     
  23.   <welcome-file-list>  
  24.     <welcome-file>index.jsp</welcome-file>  
  25.   </welcome-file-list>  
  26.     
  27. </web-app></span>  


       接着就是spring的配置文件:applicationContext.xml,可能很多人更习惯命名为beans.xml,由于习惯使用注解方式开发,所以这个是基于annotation的配置,相对xml比较简单!由于这里面已经完成了hibernate配置文件的功能,比如配置数据库等等,所以hibernate.cfg.xml就没必要“苟活”了。

applicationContext.xml

[html] view plaincopy
 
  1. <span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
  4.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
  6.            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  7.            http://www.springframework.org/schema/context  
  8.            http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  9.            http://www.springframework.org/schema/aop  
  10.            http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
  11.            http://www.springframework.org/schema/tx   
  12.            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">  
  13.   
  14.     <context:annotation-config />  
  15.     <context:component-scan base-package="com.zzw" />  
  16.   
  17.     <context:property-placeholder location="classpath:jdbc.properties" />  
  18.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  
  19.         destroy-method="close">  
  20.         <property name="driverClass" value="${jdbc.driverClassName}" />  
  21.         <property name="jdbcUrl" value="${jdbc.url}" />  
  22.         <property name="user" value="${jdbc.username}" />  
  23.         <property name="password" value="${jdbc.password}" />  
  24.         <!-- 指定连接数据库连接池的初始化连接数 -->  
  25.         <property name="initialPoolSize" value="1" />  
  26.         <!-- 指定连接数据库连接池的最大连接数 -->  
  27.         <property name="maxPoolSize" value="40" />  
  28.         <!-- 指定连接数据库连接池的最小连接数 -->  
  29.         <property name="minPoolSize" value="1" />  
  30.         <!-- 指定连接数据库连接池的连接的最大空闲时间 -->  
  31.         <property name="maxIdleTime" value="20" />  
  32.     </bean>  
  33.   
  34.     <bean id="sessionFactory"  
  35.         class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
  36.         <property name="dataSource" ref="dataSource" />  
  37.         <property name="packagesToScan">  
  38.             <list>  
  39.                 <value>com.zzw.entity</value>  
  40.             </list>  
  41.         </property>  
  42.         <property name="hibernateProperties">  
  43.             <props>  
  44.                 <prop key="hibernate.dialect">  
  45.                     org.hibernate.dialect.MySQLDialect  
  46.                 </prop>  
  47.                 <prop key="hibernate.hbm2ddl.auto">update</prop>  
  48.                 <prop key="hibernate.show_sql">true</prop>  
  49.                 <prop key="javax.persistence.validation.mode">none</prop>  
  50.                 <prop key="hibernate.format_sql">true</prop>  
  51.             </props>  
  52.         </property>  
  53.     </bean>  
  54.   
  55.     <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
  56.         <property name="sessionFactory" ref="sessionFactory"></property>  
  57.     </bean>  
  58.   
  59.     <bean id="txManager"  
  60.         class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  61.         <property name="sessionFactory" ref="sessionFactory" />  
  62.     </bean>  
  63.   
  64.     <aop:config>  
  65.         <aop:pointcut id="service"  
  66.             expression="execution(public * com.zzw.service..*.*(..))" />  
  67.         <aop:advisor pointcut-ref="service" advice-ref="txAdvice" />  
  68.     </aop:config>  
  69.   
  70.     <tx:advice id="txAdvice" transaction-manager="txManager">  
  71.         <tx:attributes>  
  72.             <tx:method name="get*" read-only="true" />  
  73.             <tx:method name="save*" propagation="REQUIRED" />  
  74.             <tx:method name="add*" propagation="REQUIRED" />  
  75.             <tx:method name="delete*" propagation="REQUIRED" />  
  76.             <tx:method name="update*" propagation="REQUIRED" />  
  77.         </tx:attributes>  
  78.     </tx:advice>  
  79. </beans></span>  

 

        由于上面的配置文件涉及到运用DataSource得起数据库的连接,关系到jdbc.properties文件,所以在此举一个mysql的简单示例:

jdbc.properties

[html] view plaincopy
 
  1. <span style="font-size:18px;">jdbc.driverClassName=com.mysql.jdbc.Driver  
  2. jdbc.url=jdbc:mysql://localhost:3306/ssh  
  3. jdbc.username=root  
  4. jdbc.password=root</span>  

 

       关于log4j的日志记录,没什么可说的,根据需要配置,简单示例如下:

log4j.properties

[html] view plaincopy
 
  1. <span style="font-size:18px;">### direct log messages to stdout ###  
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  3. log4j.appender.stdout.Target=System.out  
  4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  5. log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n  
  6.   
  7. ### direct messages to file hibernate.log ###  
  8. #log4j.appender.file=org.apache.log4j.FileAppender  
  9. #log4j.appender.file.File=hibernate.log  
  10. #log4j.appender.file.layout=org.apache.log4j.PatternLayout  
  11. #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n  
  12.   
  13. ### set log levels - for more verbose logging change 'info' to 'debug' ###  
  14.   
  15. log4j.rootLogger=warn, stdout  
  16.   
  17. #log4j.logger.org.hibernate=info  
  18. #log4j.logger.org.hibernate=debug  
  19.   
  20. ### log HQL query parser activity  
  21. #log4j.logger.org.hibernate.hql.ast.AST=debug  
  22.   
  23. ### log just the SQL  
  24. #log4j.logger.org.hibernate.SQL=debug  
  25.   
  26. ### log JDBC bind parameters ###  
  27. #log4j.logger.org.hibernate.type=info  
  28. #log4j.logger.org.hibernate.type=debug  
  29.   
  30. ### log schema export/update ###  
  31. log4j.logger.org.hibernate.tool.hbm2ddl=debug  
  32.   
  33. ### log HQL parse trees  
  34. #log4j.logger.org.hibernate.hql=debug  
  35.   
  36. ### log cache activity ###  
  37. #log4j.logger.org.hibernate.cache=debug  
  38.   
  39. ### log transaction activity  
  40. #log4j.logger.org.hibernate.transaction=debug  
  41.   
  42. ### log JDBC resource acquisition  
  43. #log4j.logger.org.hibernate.jdbc=debug  
  44.   
  45. ### enable the following line if you want to track down connection ###  
  46. ### leakages when using DriverManagerConnectionProvider ###  
  47. #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace  
  48. </span>  

 

        至于struts.xml文件的配置就根据具体action的要求来了,比如我这次的雇员管理系统里面的简单配置如下:

struts.xml

[html] view plaincopy
 
  1. <span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.3.dtd">  
  5.   
  6. <struts>  
  7.   
  8.     <constant name="struts.enable.DynamicMethodInvocation" value="true" />  
  9.     <constant name="struts.devMode" value="true" />  
  10.   
  11.     <package name="default" namespace="/" extends="struts-default">  
  12.         <action name="employee" class="com.zzw.action.EmployeeAction">  
  13.             <result name="loginSuccess">/showAllEmployee.jsp</result>  
  14.             <result name="loginFail">/loginFail.jsp</result>  
  15.             <result name="showAll">/showAllEmployee.jsp</result>  
  16.             <result name="addSuccess">/add_success.jsp</result>  
  17.             <result name="deleteSuccess">/delete_success.jsp</result>  
  18.             <result name="goUpdatePage">/updateEmployee.jsp</result>  
  19.             <result name="updateSuccess">/updateSuccess.jsp</result>  
  20.               
  21.         </action>  
  22.     </package>  
  23. </struts>  
  24. </span>  


       以上基本都是这次雇员管理系统的相关配置实例,很多地方简单化,实际上还可优化,所以仅作为参考,具体根据项目需要进行修改!

文章来自http://blog.csdn.net/qq799499343/article/details/7835477

原文地址:https://www.cnblogs.com/zhaochunhua/p/3673926.html