1

为了减少我的 Spring 配置中的样板数量(不使用组件扫描等),我想以“约定优于配置”的类似 Guice 的模式运行 Spring。

在 Guice 中,您不需要显式配置 bean。我可以创建一个如下所示的 bean 结构,Guice 将“做正确的事”:

class Foo {
  @Inject
  public Foo(Bar bar) {
  }
}

class Bar {
  @Inject
  public Bar(Blah blah) {
  }
}

class Blah {
  public Blah() {}
}

在 Spring 中,我需要一个相关的@Configuration类,该类将充满样板,如下所示:

class Config {
  @Bean public void foo() {
    return new Foo();
  }

  // etc.
}

我怀疑这可能通过自定义 BeanFactory 实现,但如果可以通过 Spring 中的其他方式实现,我想避免走这条路。

@ComponentScan将是另一种选择,但我希望它可以处理我无法控制且没有适当弹簧@Component注释的对象,并且我更喜欢使用手术刀方法而不是组件扫描的霰弹枪。

4

1 回答 1

0

我认为你已经非常成功了。您可以<context:component-scan>为您控制之外的类提供一些基于 xml 的 bean 定义。Guice 方法是Provider为这些类绑定 a 。选择你的毒药。最近,我发现自己也试图从这些 DI 框架中挤出更多的魔力,结果却发现有些事情不能自动运行是有充分理由的。如果有别的,那就很危险了。

于 2012-12-12T18:27:42.253 回答