반응형
Guice의 인젝터에서 주석이 달린 인스턴스를 검색하려면 어떻게 해야 합니까?
예를 들어 모듈이 있다고 합시다.
Module extends AbstractModule
{
@Override
protected void configure()
{
bind(String.class).
annotatedWith(Names.named("annotation")).
toInstance("DELIRIOUS");
}
}
모듈을 테스트하고 올바른 값을 삽입하는지 확인합니다.String
주석이 달린 분야Names.named("annotation")
클래스 및 필드를 가지지 않고 인젝터로부터 직접 값을 얻습니다.
@Test
public void test()
{
Injector injector = Guice.createInjector(new Module());
// THIS IS NOT GOING TO WORK!
String delirious = injector.getInstance(String.class);
assertThat(delirious, IsEqual.equalTo("DELIRIOUS");
}
injector.getInstance(Key.get(String.class, Names.named("annotation")));
나는 다음과 같은 방법을 사용하고 있다.
public <T> T getInstance(Class<T> type, Class<? extends Annotation> option) {
final Key<T> key = Key.get(type, option);
return injector.getInstance(key);
}
이걸 위해서.일반적으로 주석 인스턴스를 만드는 데 문제가 있지만 여기서는Names.named("annotation")
작동하다.
언급URL : https://stackoverflow.com/questions/5118082/how-to-retrieve-annotated-instance-from-guices-injector
반응형
'source' 카테고리의 다른 글
Python에서 백그라운드 프로세스를 시작하는 방법 (0) | 2022.11.28 |
---|---|
VUE 3 CLI 프로젝트가 sockjs 노드새로고침 호출에 대해 CORS를 차단하고 있습니다(API 호출에 대해 구성에서 프록시 사용). (0) | 2022.11.28 |
문자열에 처음 n자만 유지하시겠습니까? (0) | 2022.11.28 |
php는 따옴표로 (101)를 삽입한다. (0) | 2022.11.28 |
휴지 상태 오류: save()를 호출하기 전에 이 클래스의 ID를 수동으로 할당해야 합니다. (0) | 2022.11.28 |