• Spring2事务管理的两种配置(XML&&标注)


    package com.epeer.dao;

    public interface UserDao {
        
    public void insertUserIp(String startip, String endip);
    }




    package com.epeer.dao;
    import java.text.MessageFormat;
    import org.springframework.jdbc.core.support.JdbcDaoSupport;

    public class UserDaoImpl extends JdbcDaoSupport implements UserDao {

        
    private static final String INSERT = "insert into ipsegment(is_id, endip, startip) values(ipsegment_seq.nextval,''{0}'',''{1}'')";
        
    public void insertUserIp(String startip, String endip) {
            getJdbcTemplate().execute(MessageFormat.format(INSERT, 
    new Object[]{startip, endip}));
        }

    }



    package com.epeer.service;

    public interface UserService {
        
    public void insertUserIp(String startip, String endip);
    }



    package com.epeer.service;

    import org.springframework.transaction.annotation.Transactional;
    import com.epeer.dao.UserDao;

    public class UserServiceImpl implements UserService {

        
    private UserDao userDao;

        
    public UserDao getUserDao() {
            
    return userDao;
        }


        
    public void setUserDao(UserDao userDao) {
            
    this.userDao = userDao;
        }


        
    public void insertUserIp(String startip, String endip) {
            userDao.insertUserIp(
    "192.168.0.3""0.0.0.0");
        }

    }
    <?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:util
    ="http://www.springframework.org/schema/util"
        xmlns:p
    ="http://www.springframework.org/schema/p"
        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-2.0.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"

        default-autowire
    ="byName">
        
    <!-- =========================================================================================== -->
        
    <!--                                       加载属性文件                                          -->    
        
    <!-- =========================================================================================== -->
        
    <bean id="jdbcConfiguration"
            class
    ="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            
    <property name="locations">
                
    <list>
                    
    <value>classpath:jdbc-config.properties</value>
                
    </list>
            
    </property>
        
    </bean>
        
    <!-- =========================================================================================== -->
        
    <!--                                       配置数据源                                            -->
        
    <!-- =========================================================================================== -->
        
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
            destroy-method
    ="close" p:driverClassName="${jdbc_driver}"
            p:url
    ="${jdbc_url}" p:username="${username}" p:password="${password}"/>
        
    <!-- =========================================================================================== -->
        
    <!--                                       事务配置                                              -->
        
    <!-- =========================================================================================== -->
        
    <!-- Transaction manager for a single JDBC DataSource -->
        
        
    <bean id="transactionManager"
            class
    ="org.springframework.jdbc.datasource.DataSourceTransactionManager"/>
        
    <!--                  如果采用XML配置则用下面的配置                                              -->
        
    <aop:config proxy-target-class="true">
            
    <aop:advisor pointcut="execution(* com.epeer.service.*Impl.*(..))"
                advice-ref
    ="txAdvice"/>
        
    </aop:config>
        
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
            
    <tx:attributes>
                
    <tx:method name="insert*" no-rollback-for="java.lang.Throwable"/>
                
    <tx:method name="remove*"/>
                
    <tx:method name="add*" no-rollback-for="java.lang.Throwable"/>
                
    <tx:method name="*" read-only="true"/>
            
    </tx:attributes>
        
    </tx:advice>
        
    <!--                  如果采用XML配置则用上面的配置                                              -->
        
    <!--                  如果采用标注则去掉上面的配置,同时加入下面一行                             -->
        
    <!--
        <tx:annotation-driven transaction-manager="transactionManager"/>

        <!-- =========================================================================================== 
    -->
        
    <!--                                       事务配置                                              -->
        
    <!-- =========================================================================================== -->
        
    <!-- Transaction manager for a single JDBC DataSource -->
        
    <bean id="transactionManager"
            class
    ="org.springframework.jdbc.datasource.DataSourceTransactionManager"/>
        
    <tx:annotation-driven transaction-manager="transactionManager"/>
        
    <!-- =========================================================================================== -->
        
    <!--                                       DAO配置                                               -->
        
    <!-- =========================================================================================== -->
        
    <bean id="userDao" class="com.epeer.dao.UserDaoImpl"/>
        
    <!-- =========================================================================================== -->
        
    <!--                                       Service配置                                           -->
        
    <!-- =========================================================================================== -->
        
    <bean id="userService" class="com.epeer.service.UserServiceImpl"/>

     采用标注的话UserServiceImpl如下

     

    package com.epeer.service;

    import org.springframework.transaction.annotation.Transactional;

    import com.epeer.dao.UserDao;

    @Transactional
    public class UserServiceImpl implements UserService {

        
    private UserDao userDao;

        
    public UserDao getUserDao() {
            
    return userDao;
        }


        
    public void setUserDao(UserDao userDao) {
            
    this.userDao = userDao;
        }


        @Transactional(noRollbackForClassName 
    = "java.lang.Throwable")
        
    public void insertUserIp(String startip, String endip) {
            userDao.insertUserIp(
    "192.168.0.3""0.0.0.0");
        }

    }
  • 相关阅读:
    SAP:建表时如果有QUAN、CURR类型的字段不能激活的问题
    ABAP:ALV的 Header中添加HTML内容
    iframe中cookie失效问题
    让flash自动显示代码提示的两种方式
    event.srcElement说明,方法,技巧
    ABAP:FI常用BAPI
    加入收藏夹功能(jQuery)
    ABAP笔记:BDC完整版例子
    BDC处理时用到结构BDCDATA
    ABAP 自动生成EXCEL文件并作简单格式处理
  • 原文地址:https://www.cnblogs.com/chenying99/p/2383981.html
Copyright © 2020-2023  润新知