Найпростіший приклад: припустимо, ви маєте проперті файл у якому даєте можливість корисутвачу задавати якийсь інтервал часу в годинах (тобто з точки зору користвувача мінімальний крок в налаштуваннях є година), але самі в коді потребуєте секунди, можна інджектати це ось таким чином:
<bean class="com.blogspot.jug-lviv.Test" id="test"> <property name="testField" value="#{${time.interval.hours}*60*60}"> </property></bean>Наступний приклад, це можливість викликати вашу кастомну функцію, припустимо ви маєте пропертю, до користувач задає якусь відносну директорію, а ви хочете в біні отримати вже абсолютний шлях. Ваший абсолютний шлях = спецефічний для хосту шлях + відносний шлях. Ви пишет клас що реалізую інтерфейс:
interface PathUtil { String getRealPath(String relativePath); }і тепер у вашій спрінг конфігурації ви можете писати, отримуючи одразу абсолютний шлях інджектнутим в бін:
<bean class="com.blogspot.jug-lviv.Test" id="test"> <property name="testField"
value="#{ T(com.blogspot.jug-lviv.PathUtilImpl).getRealPath(${metrics.storage}) }"> </property></bean>Ну і варіант з інджектанням дефолтного значення, коли воно не доступне серед пропертів:
<bean class="com.blogspot.jug-lviv.Test" id="test"> <property name="topGrade"
value="#{${top.grade} == null ? '100' : ${top.grade} }}"> </property></bean>Всі зазначені праиклади працюють також для конфігурацій через анотації.
Більше читаємо тут http://static.springsource.org/spring/docs/3.0.0.M3/reference/html/ch07.html
Немає коментарів:
Дописати коментар