@Value annotation type casting to Integer from String
Solution 1:
Assuming you have a properties file on your classpath that contains
api.orders.pingFrequency=4
I tried inside a @Controller
@Controller
public class MyController {
@Value("${api.orders.pingFrequency}")
private Integer pingFrequency;
...
}
With my servlet context containing :
<context:property-placeholder location="classpath:myprops.properties" />
It worked perfectly.
So either your property is not an integer type, you don't have the property placeholder configured correctly, or you are using the wrong property key.
I tried running with an invalid property value, 4123;
. The exception I got is
java.lang.NumberFormatException: For input string: "4123;"
which makes me think the value of your property is
api.orders.pingFrequency=(java.lang.Integer)${api.orders.pingFrequency}
Solution 2:
I was looking for the answer on internet and I found the following
@Value("#{new java.text.SimpleDateFormat('${aDateFormat}').parse('${aDateStr}')}")
Date myDate;
So in your case you could try with this
@Value("#{new Integer('${api.orders.pingFrequency}')}")
private Integer pingFrequency;