2013-02-12 2 views
6

Я хочу передать INT вместо строку, которая по умолчанию весной PropertyPlaceholderConfigurer.Passing ИНТ к весне недвижимость

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

Это дает мне ошибку, потому что mailServerPort - это тип int, а $ {mail.port} - строковый тип.

Как конвертировать $ {mail.port} в int?

+1

Какова ценность mail.port? И какое исключение вы получаете? – BobTheBuilder

+0

'Весна обрабатывает преобразование, основанное на целевом типе, если это возможно. Я забыл об этом. – Mawia

ответ

7

Весна обрабатывает преобразование, основанное на целевом типе, если это возможно.

Вы уверены, что вы установили

mail.port 

значение с межд?

+0

О! так жаль. Я ошибся в имени свойства. Но спасибо за информацию. – Mawia

9

Согласно мне, кастинг должен работать правильно, если значение порта является правильным целым числом.

Если вы столкнулись с проблемой, вы можете попробовать SpringExpressionLanguage (SpEL) для преобразования.

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

Надеюсь, это вам поможет.

0

Весна должна обрабатывать ее автоматически, хотя, если она дает ошибку, вы можете использовать атрибут свойства типа и указать и указать требуемый тип. Для примера.

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

Надеется, что это помогает .. :-)

0

Всех вышеперечисленных ответы будут работать нормально в случае стоимость имущества предоставляются. Если он пуст, вы можете использовать SpringExpressionLanguage для обработки этого случая и указать значение по умолчанию:

Смежные вопросы