返回spring单例的全局对象



从设计的角度来看,从spring上下文返回单例的全局对象有什么问题吗?

我刚开始在一个新地方工作,所有DAO都是通过一个名为DAOUtils的全局对象访问的,其中每个DAO从spring上下文中获得单例DAO bean。例如,如果你想保存一个采购订单,你可以输入

DAOUtils.getPurchaseOrderDao () .savePurchaseOrder (po);

之类的

我已经习惯了按需要将dao注入到需要它们的每个类中,所以这让我有点震惊。从设计的角度来看,它有什么问题吗?如果有,你能解释一下为什么它是一个坏主意吗?

我可以看到,它使单元测试困难,因为没有办法阻止代码调用实际的DAOUtils类…?我想这可以被描述为紧密耦合引起的问题?

这是一个糟糕的设计模式,因为您不能用其他东西代替daoutil,例如用于测试目的。

Spring使用依赖注入,这是检索DAO实例的最佳方式。

最新更新