spring中进行事务管理,是使用了动态代理技术,为 拦截的bean 生成代理,这样在调用bean方法是可以进行事务管理。

我想要实现一个非常简单的事务管理框架,能在ioc容器中进行声明,即可进行事务管理。

首先详细的分析 spring的实现过程:

     1,定义sessionFactory

     2,将sessionFactory 注入到 transactionManager中,使其能托管

     3,然后配置 beanNameProxy, 需要事务管理的beanName这样读取bean的时候 会从 这里生成代理

     4,配置要拦截的method的 事务隔离属性

 这样,当从ioc中取bean的时候 会根据 beanNameProxy 中配置的 beanname决定 是否需要从这里生成bean

 从这里生成bean之后,然后根据配置的 method的隔离级别 在transcationManager中开启事务,执行 bean中的方法

 执行完成后,根据返回结果决定是否 提交 或者回滚。

    5,到这里事务就完全实现了,还需要看看 spring中的代码,这也应该是aop的实现方式

去看看具体的实现代码,简化一下实现我的需求就好。

完成后会分享给大家的