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:
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>
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 }
Peraturan pengesahan yang diperlukan oleh projek adalah seperti berikut:
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(); } }
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")); } }
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!