IoC 很好,但是与自动装配一起使用(@EJB、@Autowired、@Inject、@SpringBean...),你不认为它限制了 IoC 的目标吗?
实际上我对不同框架中的自动装配系统了解不多,但似乎它主要基于类型。
当您在 IService 上使用 @EJB 时,您只需要一个实现 ServiceImpl 即可使其工作。
如果我们想要很多实现怎么办?
似乎一些自动装配注释可以有参数。例如在 Stripes 中你可以这样做: @SpringBean("xxxService") 其中 xxxService 是一个 spring 初始化的 bean。
在这种情况下,好吧,你不要执行“new XxxServiceImpl()”,但你仍然对你想在你的 bean 中使用的服务实现进行硬编码引用。它根本不是类引用,而是对实现的 spring bean 引用......
你怎么看?我喜欢自动装配,但只是想知道自己....