[英]How to create Validation utility for variable validation in spring boot or java
我有一些變量,因為它們的驗證規則可能會在運行時發生變化(從數據庫獲取驗證規則),比如
字符串名稱; 規則:- {Max:10, Min:3, SpacialSymbol:false, AlphaNumeric:ture,...etc}
字符串年齡; 規則: - {max:100,min:19,numeric:true,alphaNumeric:false}
所以根據變量規則可能會在運行時改變......
我想要ValidationUtl.isValid(Object variableValue,Object rules)
在驗證實用程序中
static boolean isValid(){//rule implementation}
我該怎么做? 以通用方式驗證所有規則。 我不想使用 if else 語句。
你聲明一個接口
interface Rule<T> {
boolean isValid(T obj);
}
然后您可以在Rule
實現中封裝各種檢查
class MinLength implements Rule<String> {
private final int min;
MinLength(int min) {
this.min = min;
}
@Override
public boolean isValid(String obj) {
return obj.length() >= min;
}
}
class IsAlphaNumeric implements Rule<String> {
@Override
public boolean isValid(String obj) {
return true; //TODO: implement the alpha-numeric check
}
}
// other rules
您需要做的最后一件事是從您的數據庫中動態獲取規則並將它們與Rule
實現鏈接。
public class StringValidator {
public boolean validate(String string, List<Rule<String>> rules) {
boolean isValid = true;
for (Rule<String> rule : rules) {
if (rule.isValid(string)) {
isValid = false;
break;
}
}
return isValid;
}
public static void main(String[] args) {
List<Rule<String>> rules = Arrays.asList(new MinLength(10), new IsAlphaNumeric()); //obtain from Database
boolean isValid = new StringValidator().validate("blablabla", rules);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.