【发布时间】:2015-12-03 13:41:40
【问题描述】:
我想知道是否有某种折衷方案允许您模拟/利用 Google Guice 风格的 EDSL 编写模块的方式,该方式将接口绑定到 Spring 中的实现。
例如,假设我有一个如下所示的 Google Guice 模块:
public class BillingModule extends AbstractModule {
protected void configure() {
bind(BillingService.class).to(RealBillingService.class);
}
}
这将BillingService 接口绑定到RealBillingService 实现。
我认为我可以使用 Spring 的 Java 配置类的一种方法是这样的
@Configuration
public class BillingConfiguration {
@Bean
public BillingService getRealBillingService() {
return new RealBillingService();
}
}
我想知道是否有更好的方法来做到这一点,或者这是否会随着越来越复杂的使用而崩溃。
我真的很喜欢 Google Guice 以及它如何进行依赖注入,但这就是它所做的一切。 Spring 做得更多(是的,它的依赖注入机制仍然没有 Guice 那样“好”),但不可否认的是,我们希望使用一些很棒的项目,例如 Spring Data、Spring Data REST 等,从而消除了对编写大量样板代码。
【问题讨论】:
-
您可以查看spring-guice。虽然我找不到任何证据表明它曾经被释放:-(
-
@peeskillet 两者都使用是一种折衷方案。但不幸的是,这种妥协让我可怜的同事感到困惑;-(
-
仅供参考,这里有一个相反的问题 springprofiles -> guice stackoverflow.com/questions/18112299/…
-
@PaulSamsotha 截至 2020 年 12 月,spring-guice 已经发布了几个版本:mvnrepository.com/artifact/org.springframework.guice/…
标签: java spring dependency-injection guice