Estoy un poco confundido acerca de cuándo usar en ${...}
comparación con #{...}
. La documentación de Spring solo usa #{...}
, pero hay muchos ejemplos que usan ${...}
. Además, cuando comencé con SpEL me dijeron que lo usara ${...}
y funciona bien.
Para aquellos que están confundidos, un ejemplo de cómo lo uso sería
@Component
public class ProxyConfiguration {
@Value("${proxy.host}")
private String host;
@Value("${proxy.port}")
private String port;
:
}
y algún archivo de propiedades:
proxy.host=myproxy.host
proxy.port=8000
Mis preguntas son:
- ¿Cuáles son las diferencias o es lo mismo?
- ¿una versión está en desuso por lo que debería usar la otra?
"#{'${property}'}"
${expr}
-> Evaluación inmediata#{expr}
-> Evaluación diferidaReferencia completa aquí
No hay JSP EL, JSP usa SpEL. SpEL se adapta a la tecnología que lo está utilizando.
fuente
Intenta leer este artículo , que sugiere
"Si se usa el hash, su código se vuelve a calcular cada vez que se incluye ese elemento en una actualización parcial (es decir, cada vez que se procesa). Si usa un dólar, su código solo se computa cuando la página se carga inicialmente. Pero esto se ha extendido más allá de EL, también a SSJS. Después del hash o el dólar, las llaves indican el comienzo y el final de su idioma. Esto será importante cuando comencemos a combinar idiomas más adelante ".
fuente
Especificación del lenguaje de expresión • Versión final - 8 de mayo de 2006
Página 2:
Una expresión eval se forma usando las construcciones $ {expr} o # {expr}. Ambas construcciones son analizadas y evaluadas exactamente de la misma manera por el EL, aunque pueden tener diferentes significados en la tecnología que está utilizando el EL.
fuente