특정 유형의 인스턴스가 여러 개 필요한 guice 기반 응용 프로그램이 있으므로 종속성을 명확히하기 위해 명명 된 주석을 사용할 계획입니다. 그러나이 유형의 종속성은 내가 얻은 결과에 따라 달라질 필요가 있습니다. 설명하기Guice : 소유자가 주입 된 방식에 따라 주입되는 유형 변경
내가
@Singleton
public class FooCache {
private final FooCacheListener listener;
@Inject
public FooCache(FooCacheListener listener) {
this.listener = listener;
}
// do stuff
}
을 가지고 말할 수 그리고 내가
하나 개의 클래스에@ThatOne FooCache
및
@ThisOne FooCache
을 가질 수 있도록 내가 2 개 별도의 인스턴스에 대한 필요성이 있다고 할 수 있습니다 다른 하나는
입니다.
이제 각각의 경우에 다른 수신기를 원한다고 말하면됩니다 (어쩌면 하나는 데이터베이스에 뭔가 쓰고 다른 하나는 JMS 또는 일부 분산 캐시에 알림을 보냅니다). 내가 어떻게 그럴 수 있니? 나는 하나의 상황에서 다른 이름을 필요로 할 때 FooCacheListener에 이름을 붙일 수있는 것을 볼 수 없다. 반면에 여기에는 하나의 장소 만있다. 이 일을 생각할 수있는 유일한 방법은 FooCache를 서브 클래 싱하는 것입니다. 그러나 그것은 나에게 정말 서투른 접근 방법입니다.
환호 매트
어떻게 든 나는 문서에서 그 것을 놓쳤다. 그것은 내가 찾고있는 것이다. 감사. – Matt