Возможно, я неправильно ищу в Google, но я не могу его найти.
Я видел много руководств о том, как создавать собственные аннотации для полей в Springboot. Говоря о создании аспектов и т. д. Точнее, они даже используют ReflectionUtils.fieldCallback для достижения аспектно-ориентированного программирования (насколько я понял)
Однако мне не нужен аспект, мне не нужен код для выполнения. Мне просто нужна аннотация, которую я могу получить, получив аннотации классов.
Более того, мне нужна аннотация для класс, а не для поле. Почти во всех руководствах рассказывается об аннотациях и аспектах для полей.
Это то, что у меня есть на чистом java:
Моя служба:
@Service
@Order(0)
@Tag("m")
public class Changes0m extends Changes {
}
Аннотация моего тега:
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.TYPE})
public @interface Tag {
String value() default "";
}
И я хочу получить доступ к этому значению «m» следующим образом:
public abstract class Changes {
...
protected String getTag() {
return this.getClass().getDeclaredAnnotation(Tag.class).value(); // this.getClass() in runtime gives me the Changes0m.class
//return AnnotationUtils.findAnnotation(this.getClass(), Tag.class).value(); // I tried with AnnotationUtils, did not work.
}
}
Я проверил все похожие методы, которые мог придумать, но в основном любой getAnnotations / getDeclaredAnnotations дает мне только пружинные (Service и Order).
Что мне не хватает, чтобы сказать Spring, что мне тоже нужен myTag annotation?
Извините, это была полностью моя ошибка. Копипаст не так хорош, как вы могли подумать: D Большое спасибо!




Измените срок хранения на время выполнения. См. Повторяющийся вопрос. В остальном ваш код правильный.