Ich bin ein wenig verwirrt darüber, wann ich es verwenden ${...}
soll #{...}
. In der Spring-Dokumentation wird nur verwendet #{...}
, es gibt jedoch viele Beispiele, die verwendet werden ${...}
. Als ich mit SpEL anfing, wurde mir außerdem gesagt, dass ich es verwenden soll, ${...}
und es funktioniert einwandfrei .
Für diejenigen, die verwirrt sind, wäre ein Beispiel, wie ich es benutze
@Component
public class ProxyConfiguration {
@Value("${proxy.host}")
private String host;
@Value("${proxy.port}")
private String port;
:
}
und einige Eigenschaftendateien:
proxy.host=myproxy.host
proxy.port=8000
Meine Fragen sind:
- Was sind die Unterschiede oder ist es das gleiche?
- Ist eine Version veraltet, also sollte ich die andere verwenden?
"#{'${property}'}"
${expr}
-> Sofortige Auswertung#{expr}
-> Aufgeschobene BewertungVollständige Referenz hier
Es gibt keine JSP-EL, JSP verwendet SpEL. SpEL passt zu der Technologie, die es verwendet.
quelle
Versuchen Sie, diesen Artikel zu lesen , der vorschlägt
"Wenn der Hash verwendet wird, wird Ihr Code jedes Mal neu berechnet, wenn dieses Element in eine Teilaktualisierung einbezogen wird (dh jedes Mal, wenn es gerendert wird). Wenn Sie einen Dollar verwenden, wird Ihr Code nur berechnet, wenn die Seite zum ersten Mal geladen wird. Dies jedoch wurde über EL hinaus auch auf SSJS ausgedehnt. Nach dem Hash oder Dollar kennzeichnen die geschweiften Klammern den Anfang und das Ende Ihrer Sprache. Dies ist wichtig, wenn wir später Sprachen kombinieren möchten. "
quelle
Spezifikation der Ausdruckssprache • Endgültige Veröffentlichung - 8. Mai 2006
Seite 2:
Ein Auswertungsausdruck wird unter Verwendung der Konstrukte $ {expr} oder # {expr} gebildet. Beide Konstrukte werden von der EL auf genau die gleiche Weise analysiert und bewertet, obwohl sie in der Technologie, die die EL verwendet, möglicherweise unterschiedliche Bedeutungen haben.
quelle