1
나는 인터페이스 계층과 같이 있습니다자바 봄 부팅 구성은 표준
public interface Shape {
//code
}
@Component
public class Circle implements Shape {
//code
}
@Component
public class Square implements Shape {
//code
}
내가 봄 부팅 콩 규칙을 사용하여 이러한를 연결하는 가장 좋은 방법을 알고 싶습니다.
해결 방법 1 :
@Component(value = "Circle")
public class Circle implements Shape {
//code
}
@Component(value = "Square")
public class Square implements Shape {
//code
}
@Configuration
public class ShapeConfig {
@Bean
Foo circleFoo(@Qualifiers("Circle") Shape shape) {
return new Foo(shape);
}
@Bean
Foo squareFoo(@Qualifiers("Square") Shape shape) {
return new Foo(shape);
}
}
해결 방법 2 :
@Component
public class Circle implements Shape {
//code
}
@Component
public class Square implements Shape {
//code
}
@Configuration
public class ShapeConfig {
@Bean
Foo circleFoo(Circle shape) {
return new Foo(shape);
}
@Bean
Foo squareFoo(Square shape) {
return new Foo(shape);
}
}
이 경우 가장 좋은 자바/봄 연습은 무엇입니까? 내가 조금 장황 할 가치와 @Qualifier 물건을 찾을 구체적인 구현에 배선이
그것은 응용 프로그램의 구현에 따라 달라집니다
흥미로운 질문 ... 나는 명확한 답을 가지고 있지 않지만, 그럴 경우 해결 방법 2로 갈 것입니다. 가능한 경우 마술 주석을 피하는 경향이 있습니다. 한정어로 아무 것도 얻지 못한다면, 그렇게 사소한 것을 봄으로 위임하는 것이 무의미한 것처럼 보인다. – SrThompson