est également destiné à la validation de paramètres de méthode? P>
Si oui, existe-t-il un exemple sur le Web? Le plus grand défi que je suis confronté est de savoir comment obtenir un validateur dans chaque méthode. Avec le printemps 3, cela ne signifie-t-il pas que je devrais injecter pratiquement toutes les classes avec un merci! p> localValidatorFactoryBean code>? P>
5 Réponses :
the Javadocs pour chaque des annotations JSR 303 indique ce qui suit:
public void method(@NotNull String parameter) { // ... }
Cela ressemble à un cas d'utilisation pour AOP (aspectj). Écrivez un point de pointe pour les méthodes annotées avec lire AspectJ en action pour référence. P> javax.validation.constraint. * Code>, injecter un validateur dans l'aspect (probablement à l'aide du ressort) et utilisez un
@Before code> ou
ou
@Around code> conseils pour effectuer la validation avant exécution de la méthode. P>
La validation du niveau de la méthode sera prise en charge dans la version à venir 4.2 de la mise en œuvre de la référence de référence JSR 303 Validator Hibernate. p>
Comme indiqué dans la réponse précédente, cela permettra de spécifier des annotations de contrainte (intégrées ainsi que sur des types définis personnalisées) sur les paramètres de la méthode et les valeurs de retour pour spécifier les pré-conditions et les post-conditions d'une méthode d'invocation. p>
Notez que HV ne traitera que de la validation réelle des appels de méthode non liés à la déclenchement d'une telle validation. L'invocation de la validation pourrait être effectuée à l'aide des installations d'interception de l'AOP ou d'autres méthodes telles que les proxies dynamiques de JDK. P>
Le problème de la JIRA pour cela est HV-347 [1], vous pouvez donc vous ajouter comme surveillant à ce problème. P>
[1] http://opensource.atlassian.com/projects/ibernate / Parcourir / HV-347 P>
Je pense que votre poteau de blog complète votre réponse;) musingsofaprogrammingAddict.blogspot. COM / 2011/01 / ...
Gunnar était assez agréable pour mettre sa solution dans GitHub . Travaillé très bien pour moi.
Vous pouvez utiliser JCABI-Aspects (je suis un développeur), qui intègre JSR 303 avec aspectj. La validation réelle est effectuée par l'une des implémentations JSR 303, que vous devrez ajouter au chemin de classe, comme le validateur Hibernate ou Apache Bval. P>
au printemps 3.1.0 Vous pouvez utiliser une annotation @Validée pour activer la validation sur un pojo.
Créez une interface pour la classe Pojo An Mettez cette annotation dessus, puis ajoutez vos annotations de validation dans les définitions méthodes. (L'interface est requise car le ressort créera une classe proxy à l'aide de l'interface comme définition) votre pojo: p> à partir d'un Application Web de ressort standard avec validation active, n'oubliez pas d'ajouter dans votre configuration de ressort cette déclaration de haricot: p>
Pour une raison bizarre contrainteViolationException Public \ @notnull String Dosomething (); n'a pas fonctionné mais @notnull String Public String Dosomething (); fait. Utilisé la barre pour échapper au symbole au symbole qui a été confondé avec l'utilisateur par s.o