2013-02-12 15 views
6

Chcę przekazać int zamiast ciąg który jest domyślnym wiosną PropertyPlaceholderConfigurer.Podania int do wiosny właściwość

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

Daje mi błąd, ponieważ mailServerPort ma typ int, a $ {mail.port} jest typem ciągu.

Jak przekonwertować $ {mail.port} na int?

+1

Jaki jest wartość pliku mail.port? A jaki wyjątek dostaniesz? – BobTheBuilder

+0

'Spring obsługuje konwersję na podstawie typu celu, jeśli to możliwe." Zapomniałem tego. – Mawia

Odpowiedz

7

Konwersja uchwytów sprężynowych na podstawie typu celu, o ile to możliwe.

Czy jesteś pewien, że ustawienia

mail.port 

wartość z int?

+0

Och! bardzo przepraszam. Zrobiłem błąd na nazwie nieruchomości. Ale dziękuję za informację. – Mawia

9

Według mnie rzut powinien działać poprawnie, jeśli wartość portu jest odpowiednią liczbą całkowitą.

Nadal, jeśli napotkasz problem, możesz wypróbować SpringExpressionLanguage (Spel) do konwersji.

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

Mam nadzieję, że to pomoże.

0

Sprężyna powinna obsłużyć go automatycznie, jednak w przypadku podania błędu można użyć atrybutu właściwości atrybutu typu oraz podać i określić wymagany typ. Na przykład

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

Nadzieja to pomaga .. :-)

0

Wszystkie powyższe odpowiedzi będzie pracować ok w przypadku wartości nieruchomości jest świadczona. Jeśli jest pusty, możesz użyć SpringExpressionLanguage do obsługi tego przypadku i podać domyślną wartość:

<property name="mailServerPort" value="#{ '${mail.port}'.isEmpty() ? '8080' : '${mail.port}' }"/>