From 33394597a38dbe9453e02ef98da7a12255eb2589 Mon Sep 17 00:00:00 2001 From: tianqiao Date: Wed, 24 Nov 2021 10:56:39 +0800 Subject: [PATCH] =?UTF-8?q?3.2.6=20=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERSIONS.md | 6 +++++- pom.xml | 2 +- src/main/java/com/ql/util/express/annotation/QLAlias.java | 2 +- .../java/com/ql/util/express/annotation/QLAliasUtils.java | 3 +-- .../annotation/{AnnotationTest.java => QLAliasTest.java} | 6 ++++-- .../com/ql/util/express/bugfix/RecursivelyRunnerTest.java | 3 +++ 6 files changed, 15 insertions(+), 7 deletions(-) rename src/test/java/com/ql/util/express/annotation/{AnnotationTest.java => QLAliasTest.java} (90%) diff --git a/VERSIONS.md b/VERSIONS.md index c01d13d..a95ee2a 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -128,4 +128,8 @@ public Object execute(InstructionSet[] instructionSets,IExpressContextcom.alibaba QLExpress jar - 3.2.5 + 3.2.6 QLExpress QLExpress is a powerful, lightweight, dynamic language for the Java platform aimed at improving developers’ productivity in different business scenes. https://github.com/alibaba/QLExpress diff --git a/src/main/java/com/ql/util/express/annotation/QLAlias.java b/src/main/java/com/ql/util/express/annotation/QLAlias.java index d7fd72d..b1573a5 100644 --- a/src/main/java/com/ql/util/express/annotation/QLAlias.java +++ b/src/main/java/com/ql/util/express/annotation/QLAlias.java @@ -36,7 +36,7 @@ import static java.lang.annotation.ElementType.*; * */ @Inherited -@Target({TYPE, FIELD, METHOD}) +@Target({TYPE, FIELD, METHOD, PARAMETER}) @Retention(RetentionPolicy.RUNTIME) public @interface QLAlias { /** diff --git a/src/main/java/com/ql/util/express/annotation/QLAliasUtils.java b/src/main/java/com/ql/util/express/annotation/QLAliasUtils.java index 2c2ea84..feb8cc3 100644 --- a/src/main/java/com/ql/util/express/annotation/QLAliasUtils.java +++ b/src/main/java/com/ql/util/express/annotation/QLAliasUtils.java @@ -57,14 +57,13 @@ public class QLAliasUtils { if(result == null){ fieldsCache.put(key, void.class); }else{ - ((Field)result).setAccessible(true); fieldsCache.put(key,result); } }else if(result == void.class){ result = null; } return (Field)result; - } + } public static Field findQLAliasFields(Class baseClass, String propertyName) { diff --git a/src/test/java/com/ql/util/express/annotation/AnnotationTest.java b/src/test/java/com/ql/util/express/annotation/QLAliasTest.java similarity index 90% rename from src/test/java/com/ql/util/express/annotation/AnnotationTest.java rename to src/test/java/com/ql/util/express/annotation/QLAliasTest.java index d3de203..90c1eb5 100644 --- a/src/test/java/com/ql/util/express/annotation/AnnotationTest.java +++ b/src/test/java/com/ql/util/express/annotation/QLAliasTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; * @author tianqiao@come-future.com * 2021-11-15 5:51 下午 */ -public class AnnotationTest { +public class QLAliasTest { @Test public void testQLAlias() throws Exception { @@ -27,6 +27,8 @@ public class AnnotationTest { "患者.生日()==患者.生日","true",//get方法和字段名字一样是不冲突的 "患者.患者姓名 + ' 今年 '+ 患者.获取年龄() +' 岁'","老王 今年 34 岁",//任意方法的注解 }; + + //1、测试对象的方法,字段上的别名标签 IExpressContext context = new DefaultContext(); Person person = new Patient(); person.setName("老王"); @@ -39,7 +41,7 @@ public class AnnotationTest { assertTrue((""+result).equals(exps[i+1])); } - //业务调用也可以通过对象的QLAlias直接来自动产生系统变量 + //2、外部业务调用方也可以利用类、参数的QLAlias注解,自动注入ExpressContext QLAliasContext context2 = new QLAliasContext(); context2.putAutoParams(person);//等价于context2.put("患者", person); for (int i=0;i