Rumah Java javaTutorial Menggunakan Bean Validation untuk pengesahan parameter dalam pembangunan API Java

Menggunakan Bean Validation untuk pengesahan parameter dalam pembangunan API Java

Jun 18, 2023 pm 11:58 PM
java api bean validation Pengesahan parameter

Dalam pembangunan Java API, pengesahan parameter ialah pautan yang sangat penting. Menggunakan rangka kerja Pengesahan Kacang, anda boleh mengesahkan parameter dengan mudah untuk memastikan kesahihan pemindahan parameter API. Artikel ini akan memperkenalkan cara menggunakan Bean Validation.

1. Apakah Pengesahan Kacang?

Pengesahan Kacang adalah sebahagian daripada spesifikasi Java EE 6. Ia ialah rangka kerja pengesahan parameter berasaskan anotasi yang boleh digunakan untuk menambah peraturan pengesahan pada anotasi seperti kaedah, pembina, medan dan sifat. Anotasi ini boleh membantu pembangun mencegah ralat input dengan lebih baik semasa fasa penulisan kod dan mengesan serta menggesa ralat input pengguna semasa masa jalan.

Rangka kerja Pengesahan Kacang terutamanya menyelesaikan masalah berikut:

  1. Sahkan logik dan sekatan perniagaan (contohnya: sama ada ia kosong, sama ada peti mel, sama ada nombor , dsb.).
  2. Sahkan format dan sintaks (cth. tarikh, nombor telefon, poskod, dll.).
  3. Sahkan saling kebergantungan dua atau lebih medan (cth: tarikh mula mesti sebelum tarikh tamat).

2. Bagaimanakah Pengesahan Kacang berfungsi?

Rangka kerja Pengesahan Kacang menggunakan anotasi untuk menandakan parameter yang perlu disahkan ini termasuk @NotNull, @Min, @Max, @Size, @Pattern, dsb. Apabila parameter dihantar ke kaedah, rangka kerja Pengesahan Kacang secara automatik melaksanakan peraturan pengesahan yang sepadan Apabila pengesahan gagal, rangka kerja Pengesahan Kacang menghantar mesej ralat. Pembangun boleh menulis peraturan pengesahan tersuai untuk memenuhi keperluan perniagaan.

Rangka kerja Pengesahan Kacang menyediakan satu set peraturan pengesahan yang dipratentukan yang boleh digunakan pada sifat dan parameter kaedah dalam Kacang Jawa. Peraturan yang dipratentukan termasuk:

@NotNull: Semak sama ada ia adalah nilai nol

@Saiz: Semak panjang Rentetan, Koleksi, Peta dan Tatasusunan

@Min, @ Maks : Semak saiz nilai

@E-mel: Semak sama ada ia adalah alamat e-mel

@Corak: Semak rentetan mengikut ungkapan biasa

Apabila menggunakan Rangka kerja Pengesahan Kacang, anda perlu Laluan kelas mengandungi javax.validation-api dan pelaksanaan Pengesahan Kacang yang sepadan, seperti Pengesahan Hibernate Melalui Maven, anda boleh menambah kebergantungan berikut:

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.0.10.Final</version>
</dependency>
Salin selepas log masuk

contoh Pengesahan Kacang

Andaikan kami mempunyai kelas Pengguna, yang mengandungi maklumat asas pengguna, kini perlu mengesahkan atribut dalam kelas Pengguna:

public class User {
    private String name;
    private Integer age;
    private String email;
    private String address;
  
    // getters and setters
}
Salin selepas log masuk

Peraturan pengesahan yang diperlukan oleh projek adalah seperti berikut:

  1. nama Tidak Kosong dan panjangnya lebih besar daripada 5 dan kurang daripada 10
  2. umur tidak kosong dan lebih daripada 0 dan kurang daripada 200; e-mel tidak kosong dan merupakan alamat e-mel yang sah;
  3. Kami boleh menggunakan Bean Validation untuk mentakrifkan peraturan pengesahan ini Pelaksanaan khusus adalah seperti berikut:
  4. public class UserValidator {
    
        private Validator validator;
    
        public UserValidator() {
            ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
            validator = factory.getValidator();
        }
    
        /**
         * 对 User 对象进行校验
         * 
         * @param user
         * @return
         */
        public String validate(User user) {
    
            Set<ConstraintViolation<User>> violations = validator.validate(user);
    
            StringBuilder result = new StringBuilder();
            if (!violations.isEmpty()) {
                for (ConstraintViolation<User> violation : violations) {
                    result.append(violation.getMessage()).append(";");
                }
            }
    
            return result.toString();
        }
    }
    
    Salin selepas log masuk
  5. Dalam kelas UserValidator, kami menggunakan kelas alat Validator, yang dibuat melalui buildDefaultValidatorFactory. () kaedah Objek ValidatorFactory, dengan itu mencipta objek Validator instantiated. Objek pengguna boleh disahkan dengan memanggil kaedah validator.validate(user). Untuk hasil pengesahan, kami merekodkan semua maklumat ralat dalam objek StringBuilder dan mengembalikannya ke penghujung panggilan.

Akhir sekali, kita boleh menggunakan objek UserValidator dalam kelas ujian dan melaksanakan ujian:

public class UserValidatorTest {
  
    @Test
    void testValidateUser() {
        User user = new User();
        user.setName("abcd");
        user.setAge(300);
        user.setEmail("abc");
        user.setAddress(null);

        UserValidator validator = new UserValidator();
        String result = validator.validate(user);

        assertThat(result, containsString("Name length must be between 5 and 10."));
        assertThat(result, containsString("Size must be between 1 and 200."));
        assertThat(result, containsString("must be a well-formed email address"));
    }
}
Salin selepas log masuk

Dalam kaedah ujian di atas, kami mencipta objek Pengguna yang atributnya tidak mematuhi peraturan pengesahan , jadi memanggil kaedah validate() UserValidator akan mengembalikan mesej ralat yang sepadan.

4. Ringkasan

Artikel ini memperkenalkan konsep dan penggunaan rangka kerja Pengesahan Kacang. Rangka kerja mengesahkan parameter melalui anotasi, yang boleh membantu pembangun menghalang ralat input semasa menulis kod dan mengesan serta menggesa ralat input pengguna semasa masa jalan. Pada masa yang sama, pembangun boleh menulis peraturan pengesahan tersuai mengikut keperluan perniagaan untuk memenuhi senario pengesahan yang lebih kompleks.

Atas ialah kandungan terperinci Menggunakan Bean Validation untuk pengesahan parameter dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Menggunakan Imgscalr untuk pemprosesan imej dalam pembangunan API Java Menggunakan Imgscalr untuk pemprosesan imej dalam pembangunan API Java Jun 18, 2023 am 08:40 AM

Menggunakan Imgscalr untuk pemprosesan imej dalam pembangunan API Java Dengan perkembangan Internet mudah alih dan populariti pengiklanan Internet, imej telah menjadi elemen yang amat diperlukan dalam banyak aplikasi. Sama ada ia memaparkan produk, membina kalangan sosial atau meningkatkan pengalaman pengguna, imej memainkan peranan penting. Dalam aplikasi, selalunya perlu untuk melakukan operasi seperti pemangkasan, penskalaan dan pemutaran imej, yang memerlukan penggunaan beberapa alat pemprosesan imej. Imgscalr ialah imej yang sangat biasa digunakan dalam pembangunan JavaAPI.

Apakah tapak web antara muka API percuma? Apakah tapak web antara muka API percuma? Jan 05, 2024 am 11:33 AM

Laman web antara muka api percuma: 1. UomgAPI: platform yang menyediakan perkhidmatan API percuma yang stabil dan pantas, dengan lebih daripada 100 antara muka API 2. api percuma: menyediakan pelbagai antara muka API percuma 3. API JSON: menyediakan antara muka API data percuma; . Platform Terbuka AutoNavi: Menyediakan antara muka API yang berkaitan dengan peta; 5. Pengecaman muka Muka++: Menyediakan antara muka API yang berkaitan dengan pengecaman muka: Menyediakan lebih seratus antara muka API percuma, sesuai untuk pelbagai keperluan sumber; 7. Data agregat, dsb.

Bagaimana untuk melaksanakan kod pengesahan imej dalam pembangunan API Java Bagaimana untuk melaksanakan kod pengesahan imej dalam pembangunan API Java Jun 18, 2023 am 09:22 AM

Dengan perkembangan pesat teknologi Internet, untuk memastikan keselamatan sistem, kod pengesahan telah menjadi bahagian penting dalam setiap sistem. Antaranya, kod pengesahan gambar digemari oleh pembangun kerana kemudahan penggunaan dan keselamatannya. Artikel ini akan memperkenalkan kaedah khusus untuk melaksanakan kod pengesahan imej dalam pembangunan JavaAPI. 1. Apakah itu kod pengesahan gambar? Kod pengesahan gambar ialah cara pengesahan mesin manusia melalui gambar. Ia biasanya terdiri daripada gabungan gambar rawak yang mengandungi nombor, huruf, simbol, dsb., yang meningkatkan keselamatan sistem. Prinsip kerjanya termasuk

Menggunakan GreenMail untuk ujian e-mel dalam pembangunan API Java Menggunakan GreenMail untuk ujian e-mel dalam pembangunan API Java Jun 18, 2023 pm 02:22 PM

Java API ialah bahasa pembangunan yang digunakan secara meluas untuk membangunkan aplikasi web, aplikasi desktop, aplikasi mudah alih, dsb. Dalam pembangunan API Java, ujian e-mel adalah penting kerana komunikasi e-mel adalah salah satu kaedah komunikasi utama dalam masyarakat moden. Oleh itu, pembangun perlu menggunakan beberapa alat untuk menguji sama ada e-mel mereka berfungsi dengan baik. Artikel ini akan memperkenalkan perisian sumber terbuka yang dipanggil GreenMail, yang boleh digunakan dalam pembangunan JavaAPI untuk ujian e-mel. hijau

Apakah protokol biasa untuk pengaturcaraan rangkaian Java? Apakah protokol biasa untuk pengaturcaraan rangkaian Java? Apr 15, 2024 am 11:33 AM

Protokol yang biasa digunakan dalam pengaturcaraan rangkaian Java termasuk: TCP/IP: digunakan untuk penghantaran data dan pengurusan sambungan yang boleh dipercayai. HTTP: digunakan untuk penghantaran data web. HTTPS: Versi HTTP selamat yang menggunakan penyulitan untuk menghantar data. UDP: Untuk pemindahan data yang cepat tetapi tidak stabil. JDBC: digunakan untuk berinteraksi dengan pangkalan data hubungan.

JAX-RS lwn. Spring MVC: Pertempuran antara gergasi RESTful JAX-RS lwn. Spring MVC: Pertempuran antara gergasi RESTful Feb 29, 2024 pm 05:16 PM

Pengenalan API RESTful telah menjadi sebahagian daripada aplikasi WEB moden. Mereka menyediakan pendekatan piawai untuk mencipta dan menggunakan perkhidmatan Web, dengan itu meningkatkan kemudahalihan, kebolehskalaan dan kemudahan penggunaan. Dalam ekosistem Java, JAX-RS dan springmvc ialah dua rangka kerja yang paling popular untuk membina API RESTful. Artikel ini akan melihat secara mendalam kedua-dua rangka kerja, membandingkan ciri, kelebihan dan keburukannya untuk membantu anda membuat keputusan termaklum. JAX-RS: JAX-RSAPI JAX-RS (JavaAPI untuk Perkhidmatan Web RESTful) ialah JAX-RSAPI standard yang dibangunkan oleh JavaEE untuk membangunkan REST

Apakah itu j2ee dan apakah teknologi yang disertakan Apakah itu j2ee dan apakah teknologi yang disertakan Apr 14, 2024 pm 09:06 PM

J2EE ialah platform Java yang direka untuk membangunkan aplikasi perusahaan dan termasuk teknologi berikut: Java Servlet dan JSPJava Enterprise Beans (EJB)Java Persistence API (JPA)Java API untuk XML Web Services (JAX-WS)JavaMailJava Message Service ( JMS)Java Transaction API (JTA) Penamaan Java dan Antara Muka Direktori (JNDI)

Menggunakan Jgroups untuk komunikasi teragih dalam pembangunan API Java Menggunakan Jgroups untuk komunikasi teragih dalam pembangunan API Java Jun 18, 2023 pm 11:04 PM

Menggunakan JGroups untuk komunikasi teragih dalam pembangunan JavaAPI Dengan perkembangan pesat Internet dan populariti pengkomputeran awan, sistem teragih telah menjadi salah satu trend penting dalam pembangunan Internet hari ini. Dalam sistem teragih, nod yang berbeza perlu berkomunikasi dan bekerjasama antara satu sama lain untuk mencapai ketersediaan tinggi, prestasi tinggi, berskala tinggi dan ciri-ciri lain sistem teragih. Komunikasi teragih adalah bahagian penting daripadanya. JGroups ialah perpustakaan Java yang menyokong kolaborasi multicast dan diedarkan Ia menyediakan satu siri

See all articles