Spring framework, Java tabanlı uygulamalar geliştirmek için oldukça popüler bir seçenektir. Bu yazıda, Spring Boot uygulamalarında regular expression kullanarak input doğrulama işlemlerini nasıl gerçekleştireceğinizi öğreneceksiniz.
Regular Expression Nedir?
Regular expression, belirli bir desene uyan metinleri tanımlamak için kullanılan bir dildir. Özellikle form doğrulama işlemlerinde sıkça tercih edilir ve belirli bir formatı kontrol etmek için kullanılır.
Spring @Pattern Annotation Kullanarak Regex Doğrulaması
Spring framework'te, @Pattern annotation'ı kullanarak bir alanın bir regular expression'a uyumlu olup olmadığını kontrol edebiliriz. Örneğin, bir email adresinin belirli bir formata uygun olup olmadığını kontrol etmek için aşağıdaki kodu kullanabiliriz:
import javax.validation.constraints.Pattern;
public class User {
@Pattern(regexp = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", message = "Geçersiz email adresi")
private String email;
// getter ve setter metotları
}
Bu örnekte, email alanı için belirli bir regular expression kullanarak bir email adresinin doğruluğunu kontrol ediyoruz. Eğer email adresi verilen formata uymuyorsa, "Geçersiz email adresi" mesajıyla bir hata dönecektir.
Spring Boot Application.properties ile Regex Doğrulaması
Spring Boot uygulamalarında, application.properties dosyasını kullanarak değişiklik yapabiliriz. Örneğin, aynı email doğrulama işlemini application.properties dosyası üzerinden de yapabiliriz:
spring.mvc.hiddenmethod.filter.enabled=true
spring.security.user.password-user-regex=^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$
Bu örnekte, kullanıcı şifresinin belirli bir formatta olması gerektiğini belirtiyoruz. Şifre en az 8 karakterden oluşmalı, en az bir rakam, bir küçük harf ve bir büyük harf içermelidir.
Sonuç
Spring framework'te @Pattern annotation'ını ve application.properties dosyasını kullanarak kolayca regular expression doğrulamaları yapabilirsiniz. Bu sayede input kontrollerini daha sağlam yapabilir ve kullanıcıların hatalı veri girişi yapmasını engelleyebilirsiniz.