spring+springMVC+mybatis:事务配置

来源:互联网 发布:淘宝网运动鞋女款秋冬 编辑:程序博客网 时间:2024/05/17 02:56

一.前言

事务配置了大概一个上午终于成功了,因为资料很多,反而找不到一个适合自己且能走得通得方案,几经配置,总算是成功了,是否完美还待考证,至少目前想要的需求是可以满足了。
系统架构:spring+springMVC+mybatis
方式很多,我使用的是注解方式
下面直接进入几个文件的配置吧。

只是简单记录一下,所以如果有问题或者疑问,欢迎大家提出。

二.配置

1.application.xml

增加:

<!-- ================================事务相关控制=============================== -->    <!-- 扫描service-->    <context:component-scan base-package="com.parking.component">        <context:include-filter type="annotation"            expression="org.springframework.stereotype.Service" />    </context:component-scan>    <!--事务管理器 -->    <bean id="transactionManager"        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource" />    </bean>    <tx:annotation-driven transaction-manager="transactionManager" />

2.spring-mvc-servlet.xml

增加:扫描controller,不扫描service

<context:component-scan base-package="com.parking.component">        <context:include-filter type="annotation"            expression="org.springframework.stereotype.Controller" />        <context:exclude-filter type="annotation"            expression="org.springframework.stereotype.Service" />    </context:component-scan>

3.service层

@Service("orderService")@Transactionalpublic class OrderService {    @Autowired    private IOrderDAO orderDAO;    @Autowired    private IParkDAO parkDAO;    DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    /**     * 处理超时的订单      *      * @param order     */    public void dealOvertimeOrder(Order order){        System.out.print("第二步:更新订单状态到取消\n");        order.setStatus(5);        boolean r = orderDAO.update(order);        if (r) {            System.out.print("取消订单成功\n");            System.out.print("第三步\n");            Park park = parkDAO.getPark(order.getParkId());            park.setRentStatus(1);            boolean rr = parkDAO.update(park);            if (rr)                System.out.print("更新成功\n");            }    }}

这样,就成功了。简单记录一下。

0 0