为了减少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
注释,我更喜欢使用更多的手术刀的方法比组件扫描的霰弹枪。
答案 0 :(得分:0)
我认为你已经把它钉了很多。对于控件之外的类,您可以拥有<context:component-scan>
以及一些基于xml的bean定义。 Guice方式是为这些类绑定Provider
。选择你的毒药。最近我发现自己试图从这些DI框架中榨取更多魔力,只是意识到为什么有些东西不能自动运行。如果还有其他事情会很危险。