2011-05-05 73 views
1

据我了解从documentationLift提供Injector特征(及其实现)如下注入依赖:问题有关喷油器在电梯

object MyInjector extends Injector {...} 
​ 
val myThing: Box[Thing] = MyInjector.inject

不幸的是,它看起来太冒昧了我。我不希望我的商业课程依赖于Injector特质(及其实施)。我想让我的业务类保持清洁,并且没有任何框架依赖关系。例如,

Spring在这个意义上是不侵入的。也就是说,我不必将Spring导入到我的业务类中,以实现依赖注入。

我错过了什么吗?

+2

可以说,Spring更具侵入性。您不必为实现添加简单的导入,而必须将一些实现移植到Spring的XML中。由于这种方法导致的打字不力,重构性差以及其他可维护性问题, – 2011-05-05 17:56:51

+0

@Kevin我同意我必须用Spring编写XML代码,这很尴尬。然而,我的商业类是干净的,所以Spring在这个意义上并不侵入。 – Michael 2011-05-05 19:28:11

回答

1

如果您不喜欢注射器特征(我也不喜欢),您不必使用它。 http://scala.sygneca.com/patterns/component-mixins。你可以坚持到cake pattern。春天给你提供什么你不能用蛋糕模式实现的东西吗?

+0

我可能会发布一个关于Spring vs. Cake Pattern的问题,以及我可以用Spring做什么,我不能和Cake一起使用。 – Michael 2011-05-05 19:30:09