SSH 三大框架整合

SSH(Struts2+Hibernate+Spring)整合

使用工具:Eclipse/Tomcat 7

  1. 创建一个web工程:
  2. 引入jar包和配置文件:
    *struts2:
    *jar包:
    struts-2.3.15.3\apps\struts2-blank.war\WEB-INF\lib*.jar
    struts-2.3.15.3\lib\struts2-json-plugin-2.3.15.3.jar
    struts-2.3.15.3\lib\struts2-spring-plugin-2.3.15.3.jar
    * 配置文件:
    * web.xml
 <!-- 配置Struts2的核心过滤器 -->
 <filter>
    <filter-name>struts2</filter-name>
    <filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
 </filter>

 <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>
* Spring:
    * jar包:
        Spring3.2 开发最基本jar包:
                spring-beans-3.2.0.RELEASE.jar
                spring-context-3.2.0.RELEASE.jar
                spring-core-3.2.0.RELEASE.jar
                spring-expression-3.2.0.RELEASE.jar
                com.springsource.org.apache.commons.logging-1.1.1.jar
                com.springsource.org.apache.log4j-1.2.15.jar
        AOP开发:
            spring-aop-3.2.0.RELEASE.jar
            spring-aspects-3.2.0.RELEASE.jar
            com.springsource.org.aopalliance-1.0.0.jar
            com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
        Spring Jdbc开发:
            spring-jdbc-3.2.0.RELEASE.jar
            spring-tx-3.2.0.RELEASE.jar
        Spring事务管理:
            spring-tx-3.2.0.RELEASE.jar
        Spring整合其他ORM框架:
            spring-orm-3.2.0.RELEASE.jar
        Spring在web中使用:
            spring-web-3.2.0.RELEASE.jar
        Spring整合Junit测试:
            spring-test-3.2.0.RELEASE.jar
    * 配置文件:
        * web.xml
        * applicationContext.xml
        * log4j.properties

* Hibernate:
    * jar包:
        * hibernate-distribution-3.6.10.Final\hibernate3.jar
        * hibernate-distribution-3.6.10.Final\lib\required\*.jar
        * hibernate-distribution-3.6.10.Final\lib\jpa\*.jar
    * slf4j-log4j整合的jar包 :
    * 数据库驱动:
    * 连接池:(c3p0连接池)
    * 配置文件:
            * 没有hibernate的核心配置文件的方式整合:
            * 映射文件:
  1. applicationConfig.xml配置基本配置信息:

    • C3P0连接池:
    • 引入外部属性文件:
    • jdbc.properties
    • 配置连接池:
<!-- 配置连接池: -->
    <!-- 引入外部属性文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <!-- 配置C3P0连接池: -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.user}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
  • Hibernate相关信息:
<!-- Hibernate的相关信息 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- 注入连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置Hibernate的其他的属性 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.connection.autocommit">false</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
        <!-- 配置Hibernate的映射文件 -->

    </bean>
  • 事务管理:
<!-- 事务管理: -->
    <!-- 事务管理器 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <!-- 开启注解事务 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.devMode" value="false" />
</struts>

applicationConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 配置连接池: -->
    <!-- 引入外部属性文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <!-- 配置C3P0连接池: -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.user}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!-- Hibernate的相关信息 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- 注入连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置Hibernate的其他的属性 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.connection.autocommit">false</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
        <!-- 配置Hibernate的映射文件 -->
        <property name="mappingResources">
            <list>
                <value>com/yd/shop/user/vo/User.hbm.xml</value>
                <value>com/yd/shop/category/vo/Category.hbm.xml</value>
                <value>com/yd/shop/product/vo/Product.hbm.xml</value>
                <value>com/yd/shop/categorysecond/vo/CategorySecond.hbm.xml</value>
                <value>com/yd/shop/order/vo/Order.hbm.xml</value>
                <value>com/yd/shop/order/vo/OrderItem.hbm.xml</value>
                <value>com/yd/shop/adminuser/vo/AdminUser.hbm.xml</value>
            </list>
        </property>
    </bean>

    <!-- 事务管理: -->
    <!-- 事务管理器 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <!-- 开启注解事务 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

    <!-- Action的配置 ===========================-->


</beans>

web.xml

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
    <!-- Spring 核心监听器 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>


    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <!-- 让Struts 2的核心Filter拦截所有请求 -->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

jdbc.properties

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql:///shop
jdbc.user = root
jdbc.password =123456

log4j.properties

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c:/mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=info, stdout

注:上所述的jar包均上传到本人的CSDN

你可能感兴趣的:(spring,Hibernate,框架,struts,ssh)