Это не проблема Spring, это общая проблема Java.У Java нет проблемы переполнения, как у C, но она обволакивает целое число.
@Test
public void demoIntegerWrapp(){
int value = Integer.MAX_VALUE;
value += 1;
assertEquals(Integer.MIN_VALUE, value);
}
Поэтому лучшее, что вы можете сделать, это использовать long для вычисления и проверить, находится ли результат в диапазоне от integer, иначе - throwисключение.
public int overflowSaveAdd(int summand1, int summand2) {
long sum = ((long) summand1) + ((long) summand2);
if (sum < Integer.MIN_VALUE ) || (sum > Integer.MAX_VALUE) {
throw new RuntimeException(sum + " is too big for integer");
} else {
return (int) sum;
}
}