Spring Boot Uygulamasında özel doğrulamalar nasıl oluşturulur?

May 02 2023
Spring Boot'ta doğrulama, uygulama tarafından alınan girdi verilerinin uygulama tarafından tanımlanan belirli kuralları veya kriterleri karşılayıp karşılamadığını kontrol etme sürecini ifade eder. Doğrulama, hataları önlemeye ve verilerin tutarlılığını ve bütünlüğünü sağlamaya yardımcı olduğundan, sağlam ve güvenilir uygulamalar oluşturmanın önemli bir parçasıdır.

Spring Boot'da doğrulama , uygulama tarafından alınan girdi verilerinin uygulama tarafından tanımlanan belirli kuralları veya kriterleri karşılayıp karşılamadığını kontrol etme sürecini ifade eder. Doğrulama, hataları önlemeye ve verilerin tutarlılığını ve bütünlüğünü sağlamaya yardımcı olduğundan, sağlam ve güvenilir uygulamalar oluşturmanın önemli bir parçasıdır.

Spring Boot, Bean Validation çerçevesini kullanarak doğrulama için yerleşik destek sağlar; bu çerçeve, bazı açıklama kümelerini tanımlar.

Bazı yaygın doğrulama ek açıklamaları şunlardır:

  • @NotNul: verilen alan boş olmamalıdır.
  • @NotEmpty: Verilen alan boş bırakılamaz.
  • @NotBlank: verilen string alanı boş string olmamalıdır.
  • @Minve @Max: verilen sayısal alan, yalnızca değeri belirli bir değerin üstünde veya altında olduğunda geçerlidir.
  • @Pattern: verilen dize alanı, yalnızca belirli bir normal ifadeyle eşleştiğinde geçerlidir.
  • @Email: verilen dize alanı geçerli bir e-posta adresi olmalıdır.

Doğrulama için zorunlu bağımlılık:

Çalışan.java

Çalışan Denetleyici

@ValidDoğrulamak istediğimiz yöntem parametrelerine ve alanlarına açıklama ekleyin . @Valid ek açıklaması, spring Boot'a, belirttiğimiz doğrulama kısıtlamalarına göre giriş verilerini otomatik olarak doğrulamasını söyler.

Yukarıdaki uygulamanın test edilmesi:

Yukarıda ad ve e-posta alanları belirtilen ölçütlerle eşleşmiyor

Tüm hataları toplamak için bir “ExceptionHandler”a ihtiyacımız var ve aşağıda verilmiştir:

İstisna işleyici aracılığıyla idare ediyorum MethodArgumentNotValidException .

Yol Değişkenlerini ve İstek Parametrelerini Doğrulama:

Yol değişkenlerini ve istek parametrelerini doğrulamak biraz farklı çalışır.

@Min kısıtlama ek açıklamasını doğrudan Spring denetleyicisindeki yöntem parametresine ekliyoruz :

Uygulamayı istisna işleyici yöntemi olmadan çalıştırmayı denersek ConstaintViolationException hatası verecektir. İstisnayı toplamak için aşağıdaki yöntemi eklememiz gerekir:

@ExceptionHandler(ConstraintViolationException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseEntity<String> handleValidationError(ConstraintViolationException exception) {

  return new ResponseEntity<>("not valid due to validation error: " + exception.getMessage(), HttpStatus.BAD_REQUEST);
}

yukarıdaki işlemin aynısını İstek Paramları için de kullanabiliriz

Özel Doğrulama oluşturma

Özel bir doğrulama sınıfı oluşturun

Hedef alanı belirtmek için @Target ek açıklaması, saklama politikasını belirtmek için @Retention, özel kısıtlama oluşturmak için @Constraint ekleyin.

@Target ek açıklaması, standart bir Java ek açıklamasıdır ve ek açıklamaların kullanımını belirli öğe türleri ile sınırlamak için kullanılır.

Alandaki verilen verilerin geçerli olup olmadığını doğrulamak için Kısıtlama Doğrulayıcı'yı uygulayan ÇalışanTypeValidator sınıfı oluşturun:

Özel doğrulamayı uyguladığımız alanın üzerine ek açıklama olarak ValiadeEmployeeType sınıfını ekleyin.

ÇalışanTürü için özel doğrulama uyguladık, çalışanTürü Kalıcı veya Sözleşmeli olmalıdır.

Çalışan Tipi için belirttiğimiz metinden farklı bir metin eklersek aşağıdaki gibi bir hata mesajı veriyor:

Yukarıda, "çalışanTürü" rastgele metin olarak verilmiştir.

Çalışan Türlerini Kalıcı veya Sözleşmeli olarak iletirsek, çıktı şöyle olacaktır:

Diğer Spring Boot Kavramları için bağlantılara bakın:

Spring Boot ile Spring Security rol tabanlı erişim

JWT ile Bahar Güvenliği Kimlik Doğrulaması ve Yetkilendirmesi

Bahar AOP öğreticisi

Bahar Önyükleme Günlüğü Eğitimi

Spring Boot'da Merkezi Yapılandırma

javinpaul Domenico Nicoli Trey Huffine Arslan Ahmad Soma Mehmet Özkaya Eğitici Ekip