参考的学习视频→https://b23.tv/av47952931/p82
之前在Account例子中,为了让将所有操作都成为一个事务,我们在AccountServiceImpl每个方法都加入了以下代码
这样相同的代码就需要在每个方法中写一遍,非常繁琐
于是我们新建一个代理工场BeanFactory,将事务管理器txManager挪到这里,并设置accountService和txManager的set方法以便于Spring自动注入
然后在BeanFactory中写一个getAccountService方法获取service代理对象
所以在配置xml时,因为service中的事务管理器挪到了代理对象中,所以这里可以删去,然后只需要配置代理的service和BeanFactory即可,代理的service是通过BeanFactory的getAccountService方法获得的
这时候AccountServiceImpl中的方法就变得很简洁啦
这个时候由于我们配置了两个service,所以在测试方法自动注入时需要指定id,运行这个测试方法,和之前的效果完全相同,但是代码是不是简洁了许多呢?