6

我想传递int而不是spring PropertyPlaceholderConfigurer默认的字符串

<property name="mailServerPort" value="${mail.port}" />

这给了我错误,因为 mailServerPort 是 int 类型,而 ${mail.port} 是字符串类型。

如何将 ${mail.port} 转换为 int?

4

4 回答 4

10

根据我的说法,如果端口的值是正确的整数,则转换应该可以正常工作。

不过,如果您遇到问题,您可以尝试使用 SpringExpressionLanguage(SpEL) 进行转换。

<property name="mailServerPort" value="#{ T(java.lang.Integer).parseInt(mail.port) }"/>

希望这对您有所帮助。

于 2013-02-12T13:25:37.960 回答
7

如果可能,Spring 会根据目标类型处理转换。

你确定你设置

mail.port

int 的值?

于 2013-02-12T13:09:33.593 回答
0

Spring 应该自动处理它,尽管如果它给出错误,您可以使用type属性属性标记并提供和指定要求类型。对于前。

<property name="mailServerPort" type="int" value="${mail.port}" />

希望这可以帮助.. :-)

于 2016-10-05T08:47:41.607 回答
0

如果提供了属性值,上述所有答案都可以正常工作。如果它是空的,你可以使用 SpringExpressionLanguage 来处理这种情况并提供一个默认值:

<property name="mailServerPort" value="#{ '${mail.port}'.isEmpty() ? '8080' : '${mail.port}' }"/>
于 2017-03-24T09:54:18.870 回答