Maven学习笔记---整合SSH框架

6 篇文章 0 订阅
4 篇文章 0 订阅

Maven学习笔记—整合SSH框架

1、搭建struts2环境

1.1创建strut2配置文件:struts.xml

1.2在web.xml中配置strut2的核心过滤器

<!-- 配置Struts核心过滤器 -->
    <filter>
        <filter-name>struts</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

2、搭建Spring环境

2.1创建spring配置文件applicationContext.xml

2.2在web.xml中配置监听器:ContextLoaderListener

<!-- 配置监听器:默认加载WEB-INF/applicationContext.xml -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- 通过上下文参数指定spring配置文件路径 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

3、搭建Hibernate环境

3.1创建Hibernate核心配置文件hibernate.cfg.xml(可以不需要,完全交给Spring管理就好)

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <!-- 会话工厂 -->
    <session-factory>
        <!-- 数据库方言,根据数据库选择 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <!--为了方便调试是否在运行hibernate时在日志中输出sql语句 -->
        <property name="hibernate.show_sql">true</property>
        <!-- 是否对日志中输出的sql语句进行格式化 -->
        <property name="hibernate.format_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        </session-factory>
</hibernate-configuration>

4、struts2和Spring整合

整合关键点:action对象创建,交给spring创建
(1)创建action类
(2)将action对象配置到spring配置文件中
(3)在struts.xml中在action节点中class属性配置为spring工厂中action对象bean的id

5、Spring跟Hibernate框架整合

整合关键点:1、数据源dataSource交给spring 2、SessionFactory对象创建交给spring创建 3、事务管理

5.1配置dataSource

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

5.2配置SessionFactory对象

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="configLocations" value="classpath:applicationContext.xml"></property>
</bean> 

5.3事务管理

a) 配置事务管理器: PlatFormTransactionManager:接口
i. Jdbc:DataSourceTransactionManager
ii. Hibernate:HibernateTransactionManager
(1)xml配置普通方式(非注解)

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

    <!-- xml方式管理事务 -->
    <!-- 配置通知:具体增强逻辑 -->
    <tx:advice id="txAdvice">
        <tx:attributes>
            <!-- 匹配业务类中方法名称 -->
            <tx:method name="save*" />
            <tx:method name="update*" />
            <tx:method name="delete*" />
            <tx:method name="find*" read-only="true"/>
            <tx:method name="*"/>
        </tx:attributes>
    </tx:advice>

    <!-- 配置aop -->
    <aop:config>
        <!-- 配置切点:具体哪些方法要增强(真正被增强的方法)-->
        <aop:pointcut expression="execution(* cn.itcast.service.*.*(..))" id="cut"/>
        <!-- 配置切面:将增强逻辑作用到切点  (通知+切入点) -->
        <aop:advisor advice-ref="txAdvice" pointcut-ref="cut"/>
    </aop:config>
    <!-- xml方式管理事务 -->

(2)配置注解方式的事务(常用,写起来简洁)

<!--配置事务管理器  -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 开启事务扫描 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值