zoukankan      html  css  js  c++  java
  • 三大框架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

  • 相关阅读:
    Fegin参数使用总结
    navicat彻底卸载
    VM虚拟机win10无法联网,DNS配置问题
    Navicat15的安装及破解
    Docker 配置国内镜像源拉取prometheus,解决prometheus拉取特别慢的问题
    python中faker(生成随机数据)
    初探移动网站的架构和设计
    利用HTML5的一个重要特性 —— DeviceOrientation来实现手机网站上的摇一摇功能
    响应式Web设计(三):响应式Web设计的方法
    响应式Web设计(四):响应式Web设计的优化
  • 原文地址:https://www.cnblogs.com/zhaochunhua/p/3673926.html
Copyright © 2011-2022 走看看