我有我需要用一個名字來註釋,所以我定義我的註釋爲的Java註釋掃描帶彈簧
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface JsonUnmarshallable {
public String value();
}
現在需要這個註釋的類定義爲
@JsonUnmarshallable("myClass")
public class MyClassInfo {
<few properties>
}
幾類我用下面的代碼來掃描註釋
private <T> Map<String, T> scanForAnnotation(Class<JsonUnmarshallable> annotationType) {
GenericApplicationContext applicationContext = new GenericApplicationContext();
ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(applicationContext, false);
scanner.addIncludeFilter(new AnnotationTypeFilter(annotationType));
scanner.scan("my");
applicationContext.refresh();
return (Map<String, T>) applicationContext.getBeansWithAnnotation(annotationType);
}
問題是返回的map包含["myClassInfo" -> object of MyClassInfo]
但我需要該映射包含"myClass"
作爲鍵,這是Annotation的值而不是bean的名稱。
有沒有辦法做到這一點?
我試圖使用框架,它是更靈活,但是我無法找到特定於我的使用情況。你能告訴我怎樣才能得到annotationDb返回一個由類 – Manoj
中定義的註解的值作爲鍵值的Map對不起,我錯了,但你可以發佈過程那個Map –