Estou um pouco confuso sobre quando usar em ${...}
comparação com #{...}
. A documentação do Spring usa apenas #{...}
, mas existem muitos exemplos ${...}
. Além disso, quando comecei com o SpEL, fui solicitado a usar ${...}
e ele funciona bem.
Para quem está confuso, um exemplo de como eu o uso seria
@Component
public class ProxyConfiguration {
@Value("${proxy.host}")
private String host;
@Value("${proxy.port}")
private String port;
:
}
e algum arquivo de propriedades:
proxy.host=myproxy.host
proxy.port=8000
Minhas perguntas são:
- quais são as diferenças ou é a mesma coisa?
- é uma versão preterida, então devo usar a outra?
"#{'${property}'}"
${expr}
-> Avaliação imediata#{expr}
-> Avaliação diferidaReferência completa aqui
Não há JSP EL, o JSP usa SpEL. O SpEL se encaixa na tecnologia que está sendo usada.
fonte
Tente ler este artigo , que sugere
"Se o hash for usado, seu código será recalculado toda vez que esse elemento for incluído em uma atualização parcial (ou seja, toda vez que for renderizado). Se você usar um dólar, seu código será computado apenas quando a página for carregada inicialmente. Mas isso foi estendido para além do EL, também para o SSJS. Após o hash ou o dólar, os chavetas indicam o início e o fim do seu idioma. Isso será importante quando chegarmos à combinação de idiomas posteriormente. "
fonte
Especificação do idioma da expressão • Versão final - 8 de maio de 2006
Página 2:
Uma expressão de avaliação é formada usando as construções $ {expr} ou # {expr}. Ambas as construções são analisadas e avaliadas exatamente da mesma maneira pelo EL, mesmo que possam ter significados diferentes na tecnologia que está usando o EL.
fonte