Spring’de Custom Validation

sametklou

Spring’de Custom Validation

Spring, Java tabanlı uygulamalar geliştirmek için yaygın olarak kullanılan bir framework'tür. Bu yazıda, Spring framework'ünün Custom Validation özelliğini nasıl kullanabileceğimizi öğreneceğiz.

Custom Validation Nedir?

Spring'de Custom Validation, uygulamamızda belirli kural ve koşullara göre veri girişlerini kontrol etmemizi sağlayan bir özelliktir. Örnek olarak, bir form alanının boş olmaması veya belirli bir uzunlukta olması gibi kontrolleri yapabiliriz.

Nasıl Kullanılır?

Custom Validation özelliğini kullanabilmek için öncelikle bir Validator sınıfı oluşturmamız gerekmektedir. Bu sınıfı oluşturduktan sonra, ilgili veri nesnesine bu Validatör'ü ekleyerek kural ve koşulları belirtebiliriz.

Aşağıda basit bir Custom Validation örneği verilmiştir:

import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

public class UserValidator implements Validator {

    @Override
    public boolean supports(Class<?> clazz) {
        return User.class.equals(clazz);
    }

    @Override
    public void validate(Object target, Errors errors) {
        User user = (User) target;
        if (user.getUsername() == null || user.getUsername().isEmpty()) {
            errors.rejectValue("username", "NotEmpty.user.username");
        }
    }
}

Yukarıdaki örnekte, UserValidator adında bir Validatör sınıfı oluşturduk ve validate metodu içerisinde User nesnesinin username alanının boş olup olmadığını kontrol ettik. Eğer bu alan boş ise hata mesajını NotEmpty.user.username olarak eklemiştik.

Son olarak, oluşturduğumuz Validatör'ü ilgili veri nesnesine eklemek için ise aşağıdaki gibi yapabiliriz:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;

@Controller
public class UserController {

    @PostMapping("/user")
    public String createUser(@Valid @ModelAttribute("user") User user, BindingResult result) {
        new UserValidator().validate(user, result);
        if (result.hasErrors()) {
            return "errorPage";
        }
        return "successPage";
    }
}

Yukarıdaki örnekte, createUser metodu içerisinde @Valid annotation'ı ile User nesnesini doğrulattık ve Custom Validation işlemi için UserValidator'ü kullandık. Eğer doğrulama işlemi sırasında hata oluştuysa, errorPage sayfasına yönlendirme yapıldı.

Sonuç

Spring framework'ü Custom Validation özelliği sayesinde uygulamalarımızda veri girişlerini kontrol etmemiz oldukça kolaylaşmaktadır. Yukarıdaki örnekler ile, Custom Validation'ı nasıl kullanabileceğimizi öğrenmiş olduk. Kendi projelerinizde de benzer şekilde Custom Validation işlemlerini gerçekleştirebilir ve veri güvenliğinizi artırabilirsiniz.