Spring自动事物代理


<!-- 定义事务管理器(声明式的事务) -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>

<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<!-- 配置事务属性 -->
<property name="transactionAttributes">
<props>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>

<!-- 自动代理 -->
<bean id="autoproxy"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 可以是Service或DAO层(最好是针对业务层*Service) -->
<property name="beanNames">
<list>
<value>*Service</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>

Spring自动事物代理

时间: 2024-08-01 16:02:29

Spring自动事物代理的相关文章

Spring学习之代理

Spring的核心就是IOC和AOP IOC就是控制反转:   就是用配置文件的方式给javabean 赋值. 正常的在程序里;用new 的方式创建一个对象的时候,他就固定了值, 如果是注入的方式的话可以根据配置文件的配置给他一个值(就变成可改的了).这个好像进一步模式化了程序代码.(个人理解)总有一天可能 一个程序完成所有的应用吧.只要我改配置文件. AOP:面向切面编程:个人理解就是在执行方法的时候做一些事情.让业务更纯净一些,其他的一些必须的功能就切入一段代码完成.如事物. 而AOP的底层

spring事物(1)-----手写spring的事物框架

一,区别声明式事物和编程式事物 所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理.管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager.对于编程式事务管理,spring推荐使用TransactionTemplate. 声明式事物其实就是编程式事物+spring的AOP代理,在里面我们是见不到手动的begin commit  和rollback的. 管理建立在AOP之上的.其本质是对方法前后进行拦截,然后在目

自动创建代理

在前面的例子中, 我们都通过ProxyFactoryBean创建织入切面的代理, 每一个需要被代理的bean都需要使用一个ProxyFactoryBean进行配置, 虽然可以使用父子bean进行改造,但还是很麻烦.对于小型系统而言,这种方法还可以将就使用, 但是对于很多需要代理的bean的系统, 再使用这种方法就会很麻烦. 幸运的是, spring为我们提供了自动创建代理的机制, 容器为我们自动生成代理, 把我们从繁琐的配置工作中解放出来.在内部, Spring使用BeanPostFactory

由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持

由openSession.getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持 Spring和Hibernate的集成的一个要点就是对事务的支持,openSession.getCurrentSession都是编程式事务(手动设置事务的提交.回滚)中重要的对象,HibernateDaoSupport则提供了更方便的声明式事务支持. Hibernate中最重要的就是Session对象的引入,它是对jdbc的深度封装,包括对事务的处理,Session对

Spring的事物原理

在Spring中把非功能性的事物管理代码以切面的形式进行管理,只需要声明事物即可启用事物管理. 本质:最终执行的还是java.sql.Connection的setAutoCommit(),commit(),rollback()方法. 事物管理器接口:PlatformTransactionManager.java package org.springframework.transaction; public interface PlatformTransactionManager { Transa

spring自动装配

spring提供了自动装配(autowiring)和自动检测(autodiscovery)用来减少XML的配置数量. 自动装配bean属性 byName——把与Bean的属性具有相同名字(或ID)的其他Bean自动装配到Bean的对应属性中. 示例: import com.springinaction.springdol.Instrumentalist; public class Instrumentalist{ private String song; private Object instr

Spring 自动装配

严格的说,实际分为自动检测和自动装配两方面. 先说自动检测,自动检测就是允许Spring自动检测与定义Bean.这就意味着,不使用<bean/>,你也能实现Spring中大多数的Bean的定义和装配. 为启用这一功能,你得引入context命名空间. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schem

Java的注解机制——Spring自动装配的实现原理

使用注解主要是在需要使用Spring框架的时候,特别是使用SpringMVC.因为这时我们会发现它的强大之处:预处理. 注解实际上相当于一种标记,它允许你在运行时(源码.文档.类文件我们就不讨论了)动态地对拥有该标记的成员进行操作. 实现注解需要三个条件(我们讨论的是类似于Spring自动装配的高级应用):注解声明.使用注解的元素.操作使用注解元素的代码. 首先是注解声明,注解也是一种类型,我们要定义的话也需要编写代码,如下: 1 package annotation; 2 3 import j

Spring 自动装配 Bean

Spring3系列8- Spring 自动装配 Bean 1.      Auto-Wiring ‘no’ 2.      Auto-Wiring ‘byName’ 3.      Auto-Wiring ‘byType 4.      Auto-Wiring ‘constructor’ 5.      Auto-Wiring ‘autodetect’ Spring Auto-Wiring Beans——Spring自动装配Bean 所谓自动装配,就是将一个Bean注入到其他Bean的Prope