Java 구성을 사용하면 구성 파일 내에서 bean 작성을 관리 할 수 있습니다. @Component 주석이 달린 컴포넌트 검색과 함께 사용되는 @Service 클래스도 동일합니다. 그러나, 나는이 두 메커니즘을 동시에 사용하는 것에 대해 우려하고 있습니다.Java 구성 대 구성 요소 스캔 주석
같은 프로젝트에서 Java 구성과 주석이 달린 구성 요소 검사를 피해야합니까? 나는 결과가 다음 시나리오에서 불분명하기 때문에 질문 :
@Configuration
public class MyConfig {
@Bean
public Foo foo() {
return new Foo(500);
}
}
...
@Component
public class Foo {
private int value;
public Foo() {
}
public Foo(int value) {
this.value = value;
}
}
...
public class Consumer {
@Autowired
Foo foo;
...
}
그래서, 위의 상황에서, 소비자는 500 값 또는 0 값으로 푸 인스턴스를받을 수 있습니까? 로컬에서 테스트했는데 Java 구성 Foo (값 500 포함)가 일관되게 생성 된 것으로 보입니다. 그러나, 나는 나의 테스트가 결론적 일만큼 철저하지 않다는 것에 우려하고있다.
실제 답변은 무엇입니까? Java 구성 및 구성 요소를 모두 사용하면 동일한 유형의 @Component Bean에서 검색하는 것이 좋지 않은 것처럼 보입니다.
나는 구성 요소 검사 때문에 Java 구성이 _only_ 존재한다고 자세히 말하고 싶습니다. 그렇지 않으면 XML이 더 간결합니다. (추신 : 나는 여기서 구성 요소 스캔을 정당화하지 않는다.) –