Я немного не понимаю, когда использовать ${...}
по сравнению с #{...}
. В документации Spring используется только #{...}
, но есть много примеров, которые используют ${...}
. Более того, когда я начал с SpEL, мне сказали использовать, ${...}
и он работает нормально.
Для тех, кто сбит с толку, пример того, как я его использую, будет
@Component
public class ProxyConfiguration {
@Value("${proxy.host}")
private String host;
@Value("${proxy.port}")
private String port;
:
}
и некоторый файл свойств:
proxy.host=myproxy.host
proxy.port=8000
Мои вопросы:
- в чем отличия или он одинаковый?
- одна версия устарела, поэтому я должен использовать другую?
"#{'${property}'}"
${expr}
-> Немедленная оценка#{expr}
-> Отложенная оценкаПолная ссылка здесь
JSP EL нет, JSP использует SpEL. SpEL подходит для технологий, которые его используют.
источник
Попробуйте прочитать эту статью , в которой предлагается
«Если используется хэш, ваш код пересчитывается каждый раз, когда этот элемент включается в частичное обновление (т. Е. Каждый раз, когда он отображается). Если вы используете доллар, ваш код вычисляется только при начальной загрузке страницы. Но это был расширен не только на EL, но и на SSJS. После решетки или доллара фигурные скобки обозначают начало и конец вашего языка. Это будет важно, когда мы перейдем к объединению языков позже ».
источник
Спецификация языка выражений • Окончательный выпуск - 8 мая 2006 г.
Страница 2:
Выражение eval формируется с использованием конструкций $ {expr} или # {expr}. Обе конструкции анализируются и оцениваются EL одинаково, даже если они могут иметь разное значение в технологии, использующей EL.
источник