zoukankan      html  css  js  c++  java
  • SSH整合笔记

    Spring+Struts2+Hibernate 整合笔记

    1.导包

    Hibernate导包

        hibernate/lib/required/*目录下的全部的jar包

        hibernate/lib/jpa | java persist api java的持久化规范(接口)

      

        数据库驱动(MySQL)

        

    Struts2 导包

        struts-blank.war/WEB-INF/lib/*目录下的全部的jar包

        注意:javassist-3.18.1-GA.jar包与hibernate中的重复,留下高版本

        String 整合的插件包

        

    Spring 导包

        4个基本包+2个日志包

          core|beans|context|expression|logging|log4j

        web整合包:

          spring-Web

        整合aop 4 个:

          spring-aop|spring-aspect|aop联盟|aopweaving

        整合Hibernate和事务4个

          spring-jdbc|spring-tx|c3p0|spring-orm

        整合Junit4测试

          spring-test

        在eclipse下还需导入标签包

            standard.jar

            jstl-1.2.jar

    共计41个包

     2.单独配置spring容器

         

        web.xml配置(使Spring随web启动而启动) 

    1   <!-- 配置Spring的监听器 -->
    2   <listener>
    3       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    4   </listener>
    5   <!-- 为Spring容器创建传递参数 -->
    6   <context-param>
    7       <param-name>contextConfigLocation</param-name>
    8       <param-value>classpath:applicationContext.xml</param-value>
    9   </context-param>
    Spring XML配置

    单独配置struts2

    1.配置Struts2核心过滤器web.xml

    1  <!-- struts2核心过滤器 -->
    2   <filter>
    3       <filter-name>struts2</filter-name>
    4       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    5   </filter>
    6   <filter-mapping>
    7       <filter-name>struts2</filter-name>
    8       <url-pattern>/*</url-pattern>
    9   </filter-mapping>
    Struts2 核心过滤器

    Spring整合Struts2配置

      配置常量

    <constant name="struts.objectFactory" value="spring"></constant>

      Spring负责创建Action负责创建

    1 <package name="strutsTest" namespace="/" extends="struts-default">
    2         <!-- Class属性上填写Spring中Action对象的BeanName,由Spring来控制action的生命周期,
    3             注意:需要手动处理依赖属性-->
    4         <action name="strutsTest" class="cn.test.demo.StrutsTest" method="Test">
    5             <result name="success">/success.jsp</result>
    6         </action>
    7     </package>
    Struts 配置
    1 <!-- action 对象作用范围一定是多例的prototype -->
    2     <bean name="strutsTest" class="cn.test.demo.StrutsTest" scope="prototype">
    3         <property name="springTest" ref="springTest"></property>
    4     </bean>
    Spring中配置

     Spring 整合Hibernate配置

      将sessionFactory交给Spring管理

     1 <!-- 配置Hibernate基本信息 -->
     2     <bean name="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
     3         <property name="dataSource" ref="dataSource"></property>
     4         <property name="hibernateProperties">
     5             <props>
     6                 <!-- 必要配置 -->
     7                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
     8                 <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
     9                 <prop key="hibernate.connection.url">jdbc:mysql:///crm?useSSL=true</prop>
    10                 <prop key="hibernate.connection.username">root</prop>
    11                 <prop key="hibernate.connection.password">root</prop>
    12                 <!-- 可选配置 -->
    13                 <prop key="hibernate.show_sql">true</prop>
    14                 <prop key="hibernate.format_sql">true</prop>
    15                 <prop key="hibernate.hbm2ddl.auto">update</prop>
    16             </props>
    17         </property>
    18         <property name="mappingDirectoryLocations" value="classpath:cn/test/domain"></property>
    19     </bean>
    Spring - Hibernate 基本配置
    1 <!-- 配置核心管理器 -->
    2     <bean name="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
    3         <property name="sessionFactory" ref="sessionFactory"></property>
    4     </bean>
    Hibernate 核心管理器
     1     <!-- 配置事务策略 -->
     2     <tx:advice id="txadvice" transaction-manager="transactionManager">
     3         <tx:attributes>
     4             <tx:method name="save*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false"/>
     5             <tx:method name="persist*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false"/>
     6             <tx:method name="update*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false"/>
     7             <tx:method name="modify*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false"/>
     8             <tx:method name="delete*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false"/>
     9             <tx:method name="get*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="true"/>
    10             <tx:method name="find*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="true"/>
    11         </tx:attributes>
    12     </tx:advice>
    13     <!-- 配置将通知织入目标 -->
    14     <aop:config>
    15         <!-- 配置切点 -->
    16         <!-- 配置作用那个包下那个类下的的那个方法 -->
    17         <aop:pointcut expression="execution(* cn.test.demo.HibernateDemo.*(..))" id="txPc"/>
    18         <!-- 配置切面 -->
    19         <aop:advisor advice-ref="txadvice" pointcut-ref="txPc"/>
    20     </aop:config>
    配置事务策略

    Spring整合C3P0连接池

    1 <!-- 读取c3p0配置文件 -->
    2     <context:property-placeholder location="classpath:db.properties"/>
    3     <!-- c3p0的配置 -->
    4     <bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    5         <property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
    6         <property name="driverClass" value="${jdbc.driverClass}"></property>
    7         <property name="user" value="${jdbc.user}"></property>
    8         <property name="password" value="${jdbc.password}"></property>
    9     </bean>
    C3P0连接池
  • 相关阅读:
    oo第二次博客作业
    oo第一次博客作业
    软件工程第3次作业 | 提问回顾与个人总结
    软件工程第2次作业 | 结对项目-最长单词链
    软件工程第1次作业 | 第一次阅读
    软件工程第0次作业 | 热身
    OO第四次博客作业
    OO第三次博客作业
    OO第二次博客作业
    OO第一次博客作业
  • 原文地址:https://www.cnblogs.com/FlyBlueSky/p/9273062.html
Copyright © 2011-2022 走看看