我想传递int而不是spring PropertyPlaceholderConfigurer默认的字符串。
<property name="mailServerPort" value="${mail.port}" />
这给了我错误,因为 mailServerPort 是 int 类型,而 ${mail.port} 是字符串类型。
如何将 ${mail.port} 转换为 int?
根据我的说法,如果端口的值是正确的整数,则转换应该可以正常工作。
不过,如果您遇到问题,您可以尝试使用 SpringExpressionLanguage(SpEL) 进行转换。
<property name="mailServerPort" value="#{ T(java.lang.Integer).parseInt(mail.port) }"/>
希望这对您有所帮助。
如果可能,Spring 会根据目标类型处理转换。
你确定你设置
mail.port
int 的值?
Spring 应该自动处理它,尽管如果它给出错误,您可以使用type属性属性标记并提供和指定要求类型。对于前。
<property name="mailServerPort" type="int" value="${mail.port}" />
希望这可以帮助.. :-)
如果提供了属性值,上述所有答案都可以正常工作。如果它是空的,你可以使用 SpringExpressionLanguage 来处理这种情况并提供一个默认值:
<property name="mailServerPort" value="#{ '${mail.port}'.isEmpty() ? '8080' : '${mail.port}' }"/>