Rumah >Java >javaTutorial >Cara SpringBoot menggunakan pengesahan untuk pengesahan parameter

Cara SpringBoot menggunakan pengesahan untuk pengesahan parameter

WBOY
WBOYke hadapan
2023-05-21 11:10:101353semak imbas

    1 Tambah kebergantungan

    Secara langsung tambah hibernate-validator

    <dependency>
                <groupId>org.hibernate.validator</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>6.0.2.Final</version>
            </dependency>

    Tambah spring-boot-starter-validation

    rreee

    Tambah spring-boot-starter-web

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-validation</artifactId>
                <version>1.4.0.RELEASE</version>
            </dependency>

    2. Fail konfigurasi

    Jika anda ingin menetapkan atribut fail_fast, true bermakna jika terdapat ralat parameter, ia akan dikembalikan. Lalai Apabila menyemak semua parameter, mesti ada fail konfigurasi

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>

    di mana methodValidationPostProcessor berfungsi pada requestParam

    mewarisi WebMvcConfigurerAdapter  dan mengatasi getValidator() kaedah, Biarkan pengesahan permintaan musim bunga Validator gunakan pengesah kami di atas untuk menjadikan set failFast berkuat kuasa, sila rujuk kaedah org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#mvcValidator

    3
    import org.hibernate.validator.HibernateValidator;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;
    import org.springframework.validation.beanvalidation.SpringValidatorAdapter;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    import javax.validation.Validation;
    import javax.validation.Validator;
    import javax.validation.ValidatorFactory;
    /**
     * hibernate参数验证配置
     */
    @Configuration
    public class ValidatorConfig extends WebMvcConfigurerAdapter {
    
    
        @Bean
        public Validator validator() {
            ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
                    .configure()
                    // 将fail_fast设置为true即可,如果想验证全部,则设置为false或者取消配置即可
                    .failFast(true)
    //                .addProperty("hibernate.validator.fail_fast", "true")
                    .buildValidatorFactory();
    
            return validatorFactory.getValidator();
        }
    
        /**
         * requestParam方式的校验
         * @return
         */
        @Bean
        public MethodValidationPostProcessor methodValidationPostProcessor() {
    
            MethodValidationPostProcessor methodValidationPostProcessor = new MethodValidationPostProcessor();
            methodValidationPostProcessor.setValidator(validator());
            return methodValidationPostProcessor;
        }
        @Override
        public org.springframework.validation.Validator getValidator() {
            return new SpringValidatorAdapter(validator());
        }
    }

    4 .Gunakan

    Jika anda menulis pengesahan parameter secara terus seperti

    , tambahkan anotasi @RequestParam pada kelas atau kaedah yang sepadan jika ia diterima oleh kelas entiti , entiti dalam parameter Cuma tambah Validated sebelum @Valid

    Atas ialah kandungan terperinci Cara SpringBoot menggunakan pengesahan untuk pengesahan parameter. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam