bean的Spring自动默认定义(没有组件扫描)

时间:2012-12-12 15:47:21

标签: java spring dependency-injection guice

为了减少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注释,我更喜欢使用更多的手术刀的方法比组件扫描的霰弹枪。

1 个答案:

答案 0 :(得分:0)

我认为你已经把它钉了很多。对于控件之外的类,您可以拥有<context:component-scan>以及一些基于xml的bean定义。 Guice方式是为这些类绑定Provider。选择你的毒药。最近我发现自己试图从这些DI框架中榨取更多魔力,只是意识到为什么有些东西不能自动运行。如果还有其他事情会很危险。