Skip to content

Commit af93a2b

Browse files
authored
Merge pull request #3339 from nieqiurong/20241228
Sharing ExpressionEvaluator instances
2 parents 27ca11c + ced0088 commit af93a2b

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

src/main/java/org/apache/ibatis/scripting/xmltags/ExpressionEvaluator.java

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
*/
2929
public class ExpressionEvaluator {
3030

31+
public static final ExpressionEvaluator INSTANCE = new ExpressionEvaluator();
32+
3133
public boolean evaluateBoolean(String expression, Object parameterObject) {
3234
Object value = OgnlCache.getValue(expression, parameterObject);
3335
if (value instanceof Boolean) {

src/main/java/org/apache/ibatis/scripting/xmltags/ForEachSqlNode.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
public class ForEachSqlNode implements SqlNode {
2828
public static final String ITEM_PREFIX = "__frch_";
2929

30-
private final ExpressionEvaluator evaluator;
30+
private final ExpressionEvaluator evaluator = ExpressionEvaluator.INSTANCE;
3131
private final String collectionExpression;
3232
private final Boolean nullable;
3333
private final SqlNode contents;
@@ -53,7 +53,6 @@ public ForEachSqlNode(Configuration configuration, SqlNode contents, String coll
5353
*/
5454
public ForEachSqlNode(Configuration configuration, SqlNode contents, String collectionExpression, Boolean nullable,
5555
String index, String item, String open, String close, String separator) {
56-
this.evaluator = new ExpressionEvaluator();
5756
this.collectionExpression = collectionExpression;
5857
this.nullable = nullable;
5958
this.contents = contents;

src/main/java/org/apache/ibatis/scripting/xmltags/IfSqlNode.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@
1919
* @author Clinton Begin
2020
*/
2121
public class IfSqlNode implements SqlNode {
22-
private final ExpressionEvaluator evaluator;
22+
private final ExpressionEvaluator evaluator = ExpressionEvaluator.INSTANCE;
2323
private final String test;
2424
private final SqlNode contents;
2525

2626
public IfSqlNode(SqlNode contents, String test) {
2727
this.test = test;
2828
this.contents = contents;
29-
this.evaluator = new ExpressionEvaluator();
3029
}
3130

3231
@Override

0 commit comments

Comments
 (0)