【发布时间】:2014-10-07 06:12:01
【问题描述】:
Guice 没有类似的概念。例如,Guice 可以自动注入任何具有默认构造函数的类,而无需任何特殊的类注解。为什么 spring 必须知道启动时的每个 bean? 出于自动装配的目的,弹簧不能只从类路径中查找类吗?我能想到的一个原因是 AOP。但是如果你不使用 AOP,整个 bean 定义计算会增加大量的启动时间,这是完全没有必要的。
编辑:
明确地说,我希望 spring 从类路径中按需查找一个类
@Component
class Bar {
}
@Component
class Foo {
@Autowired Bar bar;
public void doSomething() {}
}
所以当我使用getBean() 创建bean Foo 时,spring 可以看到它需要一个Bar,因此它可以简单地在类路径上查找Bar。这就是 Guice 所做的,它避免了在开发过程中非常缓慢的不必要的组件扫描。
【问题讨论】:
标签: dependency-injection guice autowired spring-ioc