Here's class GenericService:
@Service
@Validated
public class GenericService {
@Autowired OkHttpClient okHttpClient;
@Autowired CmdContext cmdContext;
public GenericService(OkHttpClient okHttpClient) {
this.okHttpClient = okHttpClient;
}
public Object doCmdIfPresents(Map requestMap){
if (requestMap.containsKey("TRANS_CODE") && cmdContext.hasCmd((String) requestMap.get("TRANS_CODE"))){
String transCode = (String) requestMap.get("TRANS_CODE");
return doCmd(
ObjectMapperWrapper.convertValue(requestMap, cmdContext.getRequestType(transCode)),
cmdContext.getUrl(transCode),
cmdContext.getResponseType(transCode));
} else {
return "illegal TRANS_CODE("+requestMap.getOrDefault("TRANS_CODE","null")+")!!";
}
}
@SneakyThrows
public <T,Q> @Valid Q doCmd(@Valid T requestMsg, String url, Class<Q> responseClass){
com.heytea.bank.citic.util.Call<T, Q> caller = new Call<>(okHttpClient);
Q response = caller.execCall(requestMsg, url, responseClass);
return response;
}
}
Here's class UserService:
@Service
@Validated
public class UserService {
private final OkHttpClient okHttpClient;
private final XstreamWrapper xStream = new XstreamWrapper();
public UserService(OkHttpClient okHttpClient) {
this.okHttpClient = okHttpClient;
}
/**
* 用户注册
*/
public @Valid T21000001Response register(@Valid T21000001Request requestMsg){
com.heytea.bank.citic.util.Call<T21000001Request, T21000001Response> caller = new Call<>(okHttpClient);
T21000001Response response = caller.execCall(requestMsg, "https://localhost:8443/api/donothing", T21000001Response.class);
return response;
}
}
When I request the same request with different url, the userservice checked request and response, while the genericservice didn't. The javax validate version is 6.2.5 Final. enter image description here