`
lindongxiao
  • 浏览: 47623 次
  • 性别: Icon_minigender_1
  • 来自: 泉州
社区版块
存档分类
最新评论

spring 事务笔记(二)

阅读更多
使用aop 事务
TransactionProxyFactoryBean 实现在无侵入的事务
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName"
			value="com.mysql.jdbc.Driver">
		</property>
		<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
		<property name="username" value="root"></property>
		<property name="password" value="agsfd"></property>
	</bean>

	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="mappingResources">
			<value>hibernate/A.hbm.xml</value>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
			</props>
		</property>

	</bean>

	<!-- 
	-->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<bean id="transactionTemplate"
		class="org.springframework.transaction.support.TransactionTemplate">
		<property name="transactionManager">
			<ref bean="transactionManager" />
		</property>
	</bean>
	<bean id="hibernateTemplate"
		class="org.springframework.orm.hibernate3.HibernateTemplate">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>

	<bean id="testDao" class="test1.TestDao">
		<property name="hibernateTemplate">
			<ref bean="hibernateTemplate" />
		</property>
	</bean>
	<bean id="managerTarget" class="test1.ManagerTarget">
		<property name="testDao">
			<ref bean="testDao" />
		</property>
	</bean>
	<bean id="manager"
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
		<property name="transactionManager">
			<ref bean="transactionManager" />
		</property>
		<property name="target">
			<ref bean="managerTarget" />
		</property>
		<property name="transactionAttributes">
            <props>
                <prop key="insert*">//实现事务的方法
                    PROPAGATION_REQUIRED, ISOLATION_READ_COMMITTED</prop>
            </props>
        </property>

	</bean>

</beans>

package test1;

import hibernate.A;

public class ManagerTarget {
	ITestDao testDao;

	public ITestDao getTestDao() {
		return testDao;
	}

	
	public void setTestDao(ITestDao testDao) {
		this.testDao = testDao;
	}
	public void insert(){
		 A ab = new A(new Integer(121),"c++");
         A abc = new A(new Integer(130),"java");
         testDao.insert(ab);
         testDao.insert(abc);
	}

}

package test1;

import hibernate.A;

public interface ITestDao {
    public void   insert(A a);
}

import hibernate.A;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import test1.ITestDao;

public class TestDao extends HibernateDaoSupport implements ITestDao {

	public void insert(A a) {

		 getHibernateTemplate().save(a);
	}

}

package test1;


import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import test.ProgrammaticManager;

public class Test {
	public static void main(String[] args) {
		ApplicationContext acx = new ClassPathXmlApplicationContext(
				"file:src/beans.xml");

//		TransactionManager transaction = (TransactionManager) acx
//				.getBean("transactionManager");
	    ManagerTarget pm=  (ManagerTarget) acx.getBean("manager");
		  pm.insert();
	}
}

分享到:
评论

相关推荐

    spring-note spring 读书笔记

    6. **Spring事务管理**: Spring提供了PlatformTransactionManager接口,支持不同的事务管理策略,如编程式和声明式事务。`spring_transaction.txt`会详细阐述如何配置事务管理,以及@Transactional注解的使用。 7. ...

    Spring学习笔记(精华全记录)

    ### Spring学习笔记(精华全记录) #### Spring框架概述 Spring框架源自Rod Johnson的个人项目,最初于2002年末发布。Spring并非一开始就作为一个完整的框架出现,而是从一个项目逐步发展而来。随着项目的成熟,...

    spring hibernate 事务管理学习笔记(二)

    在本篇“Spring Hibernate 事务管理学习笔记(二)”中,我们将深入探讨Spring框架与Hibernate集成时如何实现高效、安全的事务管理。这是一篇关于源码分析和技术工具使用的文章,适合对Java开发和数据库操作有基础...

    Spring学习笔记+学习源码.zip

    这份"Spring学习笔记+学习源码.zip"资源包含了深入学习Spring及其相关技术的知识点,以及实践代码,对提升Spring技能将大有裨益。 首先,我们来详细讨论Spring框架的主要组件和功能: 1. **依赖注入(Dependency ...

    Struts2笔记+Hibernate3.6笔记+Spring3笔记

    6. **事务管理**: 提供编程和声明式事务管理,与Spring整合时通常使用声明式事务。 **Spring3笔记** Spring是企业级应用的全面解决方案,包括依赖注入(DI)、面向切面编程(AOP)、事务管理等。以下是关键点: 1...

    Spring学习笔记.zip

    面向切面编程是Spring提供的另一个重要功能,它允许开发者将关注点分离,比如日志、事务管理等,从主业务逻辑中抽取出来,形成独立的“切面”。切面可以在特定的“连接点”(如方法调用)上织入,提高了代码的复用性...

    Spring Data JPA 笔记

    5. **事务管理**:Spring Data JPA集成Spring的事务管理,可以方便地在方法级别控制事务的开始、提交、回滚,确保数据一致性。 6. ** auditing**:Spring Data JPA还提供了审计功能,通过`@CreationTimestamp`和`@...

    Spring学习笔记&源码

    本资料“Spring学习笔记&源码”是基于网易云课堂黑马程序员的Spring四天精通课程,旨在帮助学习者深入理解和实践Spring框架。 笔记部分可能会涵盖以下内容: 1. **Spring概述**:介绍Spring框架的历史、特点和主要...

    马士兵Spring课堂笔记(超级详细版).pdf

    马士兵Spring课堂笔记(超级详细版) 本资源主要讲解了Spring框架的基础概念和应用,涵盖了面向接口编程、IOC/DI、AOP、Spring应用IOC/DI、Spring应用AOP、Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合、Spring...

    spring课堂笔记的相关知识

    Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理 AOP编程的支持 Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能 声明式事务的支持 只需要通过配置就可以...

    spring hibernate 事务管理学习笔记(一)

    在实际开发中,理解这部分源码有助于我们更深入地掌握Spring事务管理的工作原理。 至于工具,开发者可以使用诸如IntelliJ IDEA这样的IDE,其中集成的调试工具可以帮助我们跟踪代码执行流程,查看事务状态的变化,...

    Spring学习笔记.doc

    ### Spring学习笔记知识点详解 #### 一、Spring框架概述 **1.1 什么是Spring** Spring框架是一个开源的轻量级应用框架,主要用于简化企业级应用程序的开发过程。它的核心特性在于提供了一种灵活的方式来组织和...

    Spring笔记示例源代码

    "Spring笔记示例源代码"这个资源很可能是为了帮助学习者深入理解Spring框架的各种功能和用法而提供的实际代码示例。 1. **Spring IoC**:IoC是Spring的核心特性,它将对象的创建和管理权交给Spring容器,使得开发者...

    spring学习笔记

    #### 六、Spring事务管理 Spring提供了声明式的事务管理机制,简化了事务的配置和管理。 ##### 1. 事务的概念 - **原子性**:事务是一个不可分割的工作单元。 - **一致性**:事务完成后系统必须处于一致状态。 - *...

    马士兵老师spring框架学习笔记

    马士兵老师是知名的Java教育专家,他的Spring框架学习笔记深入浅出,对于初学者和进阶者来说都是一份宝贵的资源。这份笔记涵盖了Spring的核心概念、配置、AOP(面向切面编程)、DI(依赖注入)等关键知识点。 1. **...

    百知教育Spring详解笔记.rar

    Spring框架是Java开发中的核心组件,它以其IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)两大特性而著名,为开发者提供了全面的解决方案,包括依赖注入、数据访问、...

    Spring5笔记.zip

    AOP允许开发者定义“切面”,即关注点的模块化,如日志、事务管理等。Spring5提供声明式AOP,通过使用注解或XML配置,可以轻松地在代码中插入切面逻辑。 4. **Spring Boot**: 虽非Spring5的一部分,但Spring ...

    spring课堂笔记

    这篇"spring课堂笔记"包含了两部分关于Spring的学习心得,对于初学者来说是非常宝贵的资源。以下是笔记中可能涵盖的关键知识点: 1. **IoC(Inversion of Control,控制反转)**:Spring的核心特性之一,通过容器...

    spring学习笔记(十五)-编程式事务例子

    标签“源码”提示我们可能会涉及Spring事务管理的底层实现。在Spring框架中,事务管理器会利用AOP代理来织入事务控制代码。当使用JDBC时,Spring会通过Connection的setAutoCommit(false)方法开启手动事务,并在适当...

    达内,tarena,spring笔记,springPPT课件,达内spring笔记

    达内教育(Tarena)作为知名的IT培训机构,提供了这套Spring的学习资料,包括笔记和PPT课件,旨在帮助学员全面掌握Spring的核心概念和技术。 Spring笔记可能涵盖了以下内容: 1. **IoC(Inversion of Control)容器...

Global site tag (gtag.js) - Google Analytics