如上图所示; 1.在productService 中注入productDao时,进来入一次AOP,相当于进入一次数据库(发起sql命令begin transaction 开启事务),调用保存方法时再发生一次commit命令, 当保存方法抛异常时,触发spring进入aop,发送rollback命令道源数据库回滚数据。 2.分步保存 2.1 在保存图片信息时注入service,则进入两次aop,分别是进入imgService,和imgDao,调用过程跟上述相同, 2.2 直接注入dao,则只进入一次aop. 就程序百执行过程而言,进入一次或两次aop没太大关度系,事务的嵌套也不影响。关键在于,做分布式缓存的时候,手动配置aop,如果节点设置到service层的话,缓存机制监控不到dao层,直接注入dao并调用其中的方法,会使得知缓存机制获取不到数据的变化,从而使数据库和缓存数据不一道致。常规的方法是注入service,这样于业务流程也比较好理解
service注入到底是dao还是service好
最新推荐文章于 2022-06-26 14:42:05 发布