關於Java運行時動態解析屬性值的方案
大家讲道理
大家讲道理 2017-04-18 10:54:21
0
0
517

在日常開發的過程中 經常有需要動態解析屬性的場景 如

場景一 不同的規則需要調用不同的方法來獲取所需數據

RF09001=applyService#countApplyTimesCurrentDay#phone

其中phone就需要動態解析

場景二 一個規則需要調用多個外部接口

  • 接口1:先要查詢固話的裝機地址

  • 接口2:查詢固话装机地址 與 用戶輸入的单位地址的經緯度 然後比較距離是不是在一定範圍內

因為提供了一個通用的鏈式查詢接口 於是接口2所需的入參需要動態解析接口1的返回信息

目前動態解析均是使用spring el來實現的 如下所示

        Foo f = new Foo();
        f.setPhone(RandomStringUtils.randomNumeric(11));
        f.setData(newHashMap("addr","北京市朝阳区"));

        Expression expression = expressionParser.parseExpression("phone");
        String resolvedValue = expression.getValue(f, String.class);
        assertEquals(f.getPhone(),resolvedValue);

        expression = expressionParser.parseExpression("data['addr']");
        resolvedValue = expression.getValue(f, String.class);
        assertEquals(f.getData().get("addr"),resolvedValue);

不知針對類似這樣的場景, 主流一般是怎樣處理的?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(0)
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板