@@ -114,8 +114,10 @@ The following example of calling a JavaBean property calls the `String` property
114114<1> This line converts the literal to a byte array.
115115
116116
117- SpEL also supports nested properties by using standard dot notation (such as
118- `prop1.prop2.prop3`) and the setting of property values. Public fields may also be accessed.
117+ SpEL also supports nested properties by using the standard dot notation (such as
118+ `prop1.prop2.prop3`) and also the corresponding setting of property values.
119+ Public fields may also be accessed.
120+
119121The following example shows how to use dot notation to get the length of a literal:
120122
121123[source,java,indent=0]
@@ -291,18 +293,16 @@ does not provide optimum performance. For occasional expression usage,
291293this is fine, but, when used by other components such as Spring Integration,
292294performance can be very important, and there is no real need for the dynamism.
293295
294- The SpEL compiler is intended to address this need. During evaluation, the
295- compiler generates a real Java class that embodies the
296- expression behavior and uses that to achieve much faster expression
297- evaluation. Due to the lack of typing around expressions, the compiler
298- uses information gathered during the interpreted evaluations of an
299- expression when performing compilation. For example, it does not know the type
300- of a property reference purely from the expression, but, during the first
301- interpreted evaluation, it finds out what it is. Of course, basing the
302- compilation on this information can cause trouble later if the types of
303- the various expression elements change over time. For this reason, compilation
304- is best suited to expressions whose type information is not going to change
305- on repeated evaluations.
296+ The SpEL compiler is intended to address this need. During evaluation, the compiler
297+ generates a Java class that embodies the expression behavior at runtime and uses that
298+ class to achieve much faster expression evaluation. Due to the lack of typing around
299+ expressions, the compiler uses information gathered during the interpreted evaluations
300+ of an expression when performing compilation. For example, it does not know the type
301+ of a property reference purely from the expression, but during the first interpreted
302+ evaluation, it finds out what it is. Of course, basing compilation on such derived
303+ information can cause trouble later if the types of the various expression elements
304+ change over time. For this reason, compilation is best suited to expressions whose
305+ type information is not going to change on repeated evaluations.
306306
307307Consider the following basic expression:
308308
@@ -367,24 +367,22 @@ following example shows how to do so:
367367When you specify the compiler mode, you can also specify a classloader (passing null is allowed).
368368Compiled expressions are defined in a child classloader created under any that is supplied.
369369It is important to ensure that, if a classloader is specified, it can see all the types involved in
370- the expression evaluation process.
371- If you do not specify a classloader, a default classloader is used (typically the context classloader for
372- the thread that is running during expression evaluation).
370+ the expression evaluation process. If you do not specify a classloader, a default classloader is used
371+ (typically the context classloader for the thread that is running during expression evaluation).
373372
374373The second way to configure the compiler is for use when SpEL is embedded inside some other
375- component and it may not be possible to configure it through a configuration object.
376- In these cases, it is possible to use a system property. You can set the
377- `spring.expression.compiler.mode` property to one of the `SpelCompilerMode`
378- enum values (`off`, `immediate`, or `mixed`).
374+ component and it may not be possible to configure it through a configuration object. In these
375+ cases, it is possible to use a system property. You can set the `spring.expression.compiler.mode`
376+ property to one of the `SpelCompilerMode` enum values (`off`, `immediate`, or `mixed`).
379377
380378
381379[[expressions-compiler-limitations]]
382380==== Compiler Limitations
383381
384- Since Spring Framework 4.1, the basic compilation framework is in place. However, the framework does not
385- yet support compiling every kind of expression. The initial focus has been on the common expressions that are
386- likely to be used in performance-critical contexts. The following kinds of expression cannot be compiled
387- at the moment:
382+ Since Spring Framework 4.1, the basic compilation framework is in place. However, the framework
383+ does not yet support compiling every kind of expression. The initial focus has been on the
384+ common expressions that are likely to be used in performance-critical contexts. The following
385+ kinds of expression cannot be compiled at the moment:
388386
389387* Expressions involving assignment
390388* Expressions relying on the conversion service
@@ -1193,7 +1191,7 @@ The following example shows how to use the Elvis operator:
11931191 System.out.println(name); // 'Unknown'
11941192----
11951193
1196- The following listing shows A more complex example:
1194+ The following listing shows a more complex example:
11971195
11981196[source,java,indent=0]
11991197[subs="verbatim,quotes"]
0 commit comments