Spring-Data-Reste Du Programme De Validation
J'ai essayé d'ajouter le printemps des validateurs pour une source de données reste du projet.
J'ai suivi le long et à l'installation de la "prise en main" de l'application via ce lien: http://spring.io/guides/gs/accessing-data-rest/
...et maintenant je suis en train d'ajouter des PeopleValidator en suivant les documents ici:
http://docs.spring.io/spring-data/rest/docs/2.1.0.RELEASE/reference/html/validation-chapter.html
Mon custom PeopleValidator ressemble
package hello;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
public class PeopleValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return true;
}
@Override
public void validate(Object target, Errors errors) {
errors.reject("DIE");
}
}
...et mon Application.java classe ressemble maintenant à ceci
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration;
@Configuration
@EnableJpaRepositories
@Import(RepositoryRestMvcConfiguration.class)
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public PeopleValidator beforeCreatePeopleValidator() {
return new PeopleValidator();
}
}
Je m'attends à ce que l'Affichage de la http://localhost:8080/people
URL seraient le résultat d'une erreur de quelque sorte depuis le PeopleValidator est le rejet de tout. Toutefois, aucune erreur n'est levée, et le validateur n'est jamais appelée.
J'ai également essayé d'établir manuellement le validateur comme indiqué dans la section 5.1 du ressort des données reste de la documentation.
Ce qui me manque?
OriginalL'auteur Robert Greathouse | 2014-06-20
Vous devez vous connecter pour publier un commentaire.
Il semble donc que le avant/après "sauver" les événements que du feu, MIS de et PATCH. Lors de la validation, l'avant/après "de créer des" événements d'incendie.
Je l'ai essayé la méthode manuelle, en utilisant à nouveau la
configureValidatingRepositoryEventListener
remplacer et cela a fonctionné. Je ne suis pas sûr de ce que je suis en train de faire différemment au travail qu'à la maison ici. Je vais regarder demain.Bien sûr, j'aimerais savoir si d'autres ont des suggestions sur pourquoi ça ne marcherait pas.
Pour mémoire, voici ce que la nouvelle Application.java classe ressemble.
Je viens de trouver la même situation, la détection automatique ne fonctionne pas.
Je suis également d'avoir un similair question - manuellement le câblage des événements est fonctionne très bien, la détection automatique échoue.
J'ai rencontré le même problème avec elle de ne pas être auto découvertes. J'ai créé un JIRA sur: jira.printemps.io/parcourir/DATAREST-524
Maintenant, vous devez prolonger
RepositoryRestConfigurerAdapter
commeRepositoryRestMvcConfiguration
version est obsolète.OriginalL'auteur Robert Greathouse
Ressemble à la fonctionnalité n'est actuellement pas mis en œuvre (2.3.0), malheureusement il n'existe pas de constantes pour les noms d'événement contraire de la solution ci-dessous ne serait pas si fragile.
La
Configuration
ajoute tous bien nomméValidator
haricots àValidatingRepositoryEventListener
à l'aide de la droite de l'événement.OriginalL'auteur Andreas
Un peu d'un coup de poignard dans le noir - je n'ai pas utilisé
spring-data-rest
. Cependant, après avoir lu le tutoriel que vous êtes, je pense que le problème, c'est que vous avez besoin d'unPersonValidator
pas unPeopleValidator
. Tout renommé en conséquence:PersonValidator
Application
comment avez-vous tester ?
OriginalL'auteur Muel
Une autre façon de le faire est d'utiliser annoté les gestionnaires comme indiqué ici
http://docs.spring.io/spring-data/rest/docs/2.1.0.RELEASE/reference/html/events-chapter.html#d5e443
Voici un exemple de comment utiliser annoté des gestionnaires:
Exemple est de github édité par souci de concision.
OriginalL'auteur Amit