Guice에는 비슷한 개념이 없습니다. 예를 들어, Guice는 특수 클래스 주석이 필요없이 모든 클래스에 기본 생성자를 자동으로 주입 할 수 있습니다. 스프링이 시작할 때 모든 빈에 대해 알아야하는 이유는 무엇입니까? autowiring의 목적을 위해, cant spring은 classpath에서 클래스를 찾는다. 제가 생각할 수있는 한 가지 이유는 AOP 때문입니다. 그러나 AOP를 사용하지 않는다면, 전체 bean 정의 계산은 시작 시간을 상당히 증가시켜 굉장히 불필요합니다.@Component는 봄에 어떤 용도로 사용됩니까?
편집 : 명시 적으로
, 나는 그것이 그렇게 Bar
필요가 있음을 볼 수 있습니다 getBean()
스프링을 사용하여 빈 Foo
을 만들 때 봄이
@Component
class Bar {
}
@Component
class Foo {
@Autowired Bar bar;
public void doSomething() {}
}
그래서 클래스 패스에서 필요에 따라 클래스를 조회 할 클래스 경로에서 간단히 Bar
을 찾을 수 있습니다. 이것은 Guice가하는 일이며, 개발 과정에서 매우 느린 불필요한 구성 요소 스캐닝을 피할 수 있습니다.
감사합니다, 내 질문에 대한 대답을하지만 뭔가 더 싶습니다 : 봄 클래스는 단순히 다른 클래스에 autowire 클래스를 필요로 할 때 클래스 패스에서 요청할 수 있습니까? 그러면 구성 요소 스캔이 제거됩니다. 좀 더 구체적인 질문을 편집했습니다. – sha