-
Notifications
You must be signed in to change notification settings - Fork 282
Expand file tree
/
Copy pathLuaScriptExecutor.java
More file actions
37 lines (31 loc) · 978 Bytes
/
LuaScriptExecutor.java
File metadata and controls
37 lines (31 loc) · 978 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package apijson.demo.script;
import com.alibaba.fastjson.JSONObject;
import apijson.demo.UserEntity;
import apijson.orm.AbstractFunctionParser;
import apijson.orm.script.JSR223ScriptExecutor;
/**
* Lua脚本执行器
*/
public class LuaScriptExecutor extends JSR223ScriptExecutor {
@Override
protected String scriptEngineName() {
return "luaj";
}
@Override
protected Object extendParameter(AbstractFunctionParser parser, JSONObject currentObject, String methodName, Object[] args) {
UserEntity user = new UserEntity();
user.setUsername("ddd");
return user;
}
@Override
protected boolean isLockScript(String methodName) {
return true;
}
@Override
public Object execute(AbstractFunctionParser parser, JSONObject currentObject, String methodName, Object[] args) throws Exception {
//业务侧控制锁颗粒度,可以通过脚本名进行加锁
synchronized (methodName) {
return super.execute(parser, currentObject, methodName, args);
}
}
}