Às vezes, os projetos da Web de desenvolvimento de inicialização da primavera precisam executar alguma verificação básica dos parâmetros passados pela camada do controlador, como não vazios, gama de valores inteiros, comprimento de strings, data, email, etc. A Spring suporta API de validação de feijão JSR-303, que pode ser facilmente verificada.
Use anotações para verificação
Primeiro defina um objeto de encapsulamento de formulário
classe requestForm {@size (min = 1, max = 5) nome da string privada; public String getName () {Return Name; } public void setName (nome da string) {this.name = name; }}O campo de nome é limitado ao comprimento de 1 a 5 com anotação de tamanho. O tamanho é a anotação de restrição no pacote Javax.Validation.
Ao usar a anotação @Valid, significa que o feijão deve ser verificado.
@ResponseBody @getMapping (value = "bean") public string validate (@valid requestForm request) {System.out.println (request.getName ()); retornar "ok"; }Anotações personalizadas
Se as anotações internas não forem suficientes, você poderá personalizar as anotações.
Por exemplo, primeiro defina uma nomeação de anotação e restrinja o campo Nome a ser selecionado a partir de dados específicos.
@Target ({elementType.field, elementType.parameter})@retention (retentionPolicy.Runtime) @Constraint (validadoBy = nameconstraintValidator.class) @interface nameconstraint {string [] allowalues (); Classe <?> [] Grupos () padrão {}; Classe <? estende a carga de pagamento> [] Payload () padrão {}; String message ();}Onde o AllowValues representa o intervalo de valor legal e a mensagem é a informação de exibição para falha de verificação.
Mensagem, grupos e carga útil são campos exigidos pelo Validador de Hibernato. Se você quiser saber, consulte a documentação oficial.
Defina um validador para verificação real
classe NameconstraIntValidator implementa o restrintValidator <nameconstrain, string> {private string [] validValues; @Override public void Initialize (Nameconstrain RestrintaNoTation) {ValidValues = RectrainNoTation.AllowedValues (); } @Override public boolean iSValid (valor da string, restrintValidatorContext context) {for (string s: this.validValues) {if (s.equals (value)) {return true; }} retornar false; }}Use no formulário do feijão da seguinte forma
classe RequestFormWithCustomConstrain {@NameConsTrain (permedgualues = {"bar", "foo"}, message = "apenas barra, foo") nome de string privado; public String getName () {Return Name; } public void setName (nome da string) {this.name = name; }}Verificação direta de parâmetros
O que devo fazer se não quiser encapsular um objeto? Este parâmetro pode ser verificado diretamente
@Controlador@validado@requestmapp (value = "validator") public class ParameTerValidatordEMocontroller {@ResponseBody @getMapping (value = "simples") public String ValidateParameter (@size (min = 1, max = 5) nome de string) {System.out.println (nome); retornar "ok"; }}A anotação @validada acima do controlador diz à Spring que ele precisa digitalizar esta classe para verificar a anotação de restrição.
Para detalhes, consulte os capítulos relevantes do documento oficial.
https://docs.spring.io/spring-boot/docs/1.5.9.release/reference/htmlsingle/#boot-features-validation
https://docs.spring.io/spring/docs/4.3.16.release/spring-framework-reference/htmlsingle/#validation-beanValidation
Código no Github
https://github.com/kabike/spring-boot-demo
Resumir
O acima exposto é uma explicação detalhada do método de verificação de parâmetros de inicialização da mola introduzido pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem. O editor responderá a você a tempo!