Pet*_* B. 0 java spring dependency-injection
我们正在做一个相当复杂的项目,它可以访问多个数据源.目前,我们最多可以进行64次Web服务交易,并期望增加更多.我们定义了一个服务层和一个DAO.服务层类通常具有一个或多个DAO类,用于查找数据.DAO类使用spring xml连线连接到服务层类.
DAO类都有一个接口和一个Impl.这里的关键是只有一个Impl.虽然impl可能会改变,但即使这样也不太可能,因为DAO层来自一个稳定的遗留系统.
那么如果只有一个impl,那么弹簧接线的好处是什么?为什么不在服务层类中实例化类?
一个原因是单元测试,如果类本身实例化它们,您将无法使用模拟将类与其依赖项隔离开来.
使用接口的好处是Spring可以使用JDK动态代理创建AOP代理(例如,用于声明式事务管理),否则它将需要CGLIB.从Spring文档 - 只要您选择http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/aop.html#aop-proxying,JDK动态代理就是首选 -
| 归档时间: |
|
| 查看次数: |
467 次 |
| 最近记录: |