J'essaie d'utiliser la méta-annotation de spring en utilisant l'annotation aliasFor pour créer une annotation personnalisée pour les springs. RequestParam
Il suffit de "prolonger/remplacer".
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {
@AliasFor("name")
String value() default "";
----
}
avec mon annotation
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface QueryParam {
@AliasFor(annotation = RequestParam.class, attribute = "name")
String name() default "";
@AliasFor(annotation = RequestParam.class, attribute = "required")
boolean required() default false;
@AliasFor(annotation = RequestParam.class, attribute = "defaultValue")
String defaultValue() default ValueConstants.DEFAULT_NONE;
}
De cette façon, il lance l'exception
org.springframework.core.annotation.AnnotationConfigurationException: @AliasFor declaration on attribute [name] in annotation [package.QueryParam] declares an alias for attribute [name] in meta-annotation [org.springframework.web.bind.annotation.RequestParam] which is not meta-present.
Le problème est que sans la RequestParam annotée sur la QueryParam, cela ne fonctionne pas. Et il n'est pas possible de mettre la RequestParam comme PARAMÈTRE ciblé.
@RequestParam <--This is not possible.
public @interface QueryParam
Existe-t-il un autre moyen d'y parvenir ?