1.手写IOC和aop的问题分析
问题一:new关键字将service层的实现类TransferServiceImpl和Dao层的具体时间类JdbcAccountDaoImpl耦合在了一起,当需要切换Dao层实现类的时候必须得修改service代码,不符合面向接口开发的最优原则
思考:
(1)new关键字在实例化对象,除了new以外还有什么技术可以实例化对象(反射)Class.forName("全限定类名");com.lagou.edu.dao.JdbcAccountDaoImpl可以把全限定类名配置在xml中
(2)使用工厂来通过反射技术生产对象,
问题二:service层没有添加事务控制,狐仙异常可能导致数据错乱,问题很严重,尤其在金融银行行业。
分析:数据库事务归根结底是connection的事务
connection.commit();提交事务
connection.rollback();回滚事务
(1)两次update使用两个数据库连接connection,这样的话肯定不是属于一个事务控制了
(2)事务控制目前在dao层进行,没有控制在service层
解决思路:
(1)让两次update使用同一个connection连接
(2)把事务控制添加在service层