J'ai essayé de définir l'attribut logTime
dans mon annotation au printemps xml. Je vois que ce n'est pas aussi facile que je le pensais.définition des attributs d'annotation au printemps xml
@Component
@Retention(RetentionPolicy.RUNTIME)
public @interface LogExecTime {
public boolean logTime() default true;
}
J'ai essayé d'utiliser l'annotation @Value
avec l'interface sans chance:
I)
@Component
@Retention(RetentionPolicy.RUNTIME)
public @interface LogExecTime {
@Value("#{ConfigureAnnotation.doLogging}")
public boolean logTime() default true;
}
et aussi
II)
@LogExecTime([email protected]("#{ConfigureAnnotation.doLogging}"))
Toute idée comment je peux le faire au niveau xml ou est ce n'est pas possible avec l'injection de dépendance d'annotation?
Salut Iscoughlin.
@Value("#{ConfigureAnnotation.doLogging}") boolean logTime = true;
ne fonctionne pas dans une annotation pour moi, mais lelogTime = "#{ConfigureAnnotation.doLogging}"
ressemble à ce qu'il pourrait. Mon Aspect le lit mais imprime simplement "# {ConfigureAnnotation.doLogging}" et non la valeur "true" que j'ai définie dans le fichier xml. Pourriez-vous me montrer comment vous y parviendrez? – MWrightVous devez faire quelque chose avec la valeur assignée à l'annotation. Dans ce cas, la valeur est # {ConfigureAnnotation.doLogging} Vous devez donc soit instancier un résolveur EL à ressort pour résoudre la valeur, soit analyser la clé elle-même et donc quelque chose avec, comme System.getProperty (annotation .value(). substring (2, annotation.value(). size() -3) – lscoughlin