SpEL — отличная функция, предоставляемая Spring, но иногда использование SpEL для вызова конструкторов класса немного утомительно, это пример.
<bean id="plainPojo" class="myPackage.PoJo">
<property name="date" value="#{new java.util.Date()}"/>
</bean>
Чтобы инициировать экземпляр Date
, я должен включить полное имя класса Date
. Есть ли способ, которым я могу определить настраиваемый синтаксический анализатор SpEL, чтобы мне не приходилось писать полное имя класса, который я хочу использовать?
Кстати, на SpEL можно писать так:
<bean id="plainPojo" class="myPackage.PoJo">
<property name="name" value="#{new String('myName')}"/>
</bean>
Класс String находится в пакете java.lang, поэтому я думаю, что синтаксический анализатор SpEL по умолчанию, используемый инфраструктурой Spring, уже включает путь java.lang
.
java.lang
доступно (вы не увидите пакетыjava.lang
в операторе импорта). Кроме того, почему вы хотите программировать в XML, в этом случае это не кажется действительно полезным, поскольку вместо этого вы, вероятно, захотите поместить это в обычный код Java. - person M. Deinum   schedule 23.09.2014