Rumah > Java > javaTutorial > teks badan

Cara SpringBoot menggunakan pengesahan untuk pengesahan parameter

WBOY
Lepaskan: 2023-05-21 11:10:10
ke hadapan
1305 orang telah melayarinya

    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>
    Salin selepas log masuk

    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>
    Salin selepas log masuk

    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>
    Salin selepas log masuk

    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());
        }
    }
    Salin selepas log masuk
    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!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan