数据库表里存小段java代码 请问大佬们,往数据库表里某个字段存一小段java代码(例如一段if,else),然后后台查到该字段值后再继续运行该逻辑,这个可行不? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java的运行前需要先编译成字节码,然而再由jvm 解释成二进制才能执行,那么前提是字节码,而数据库中存的是原码,估计是不能 用spring 里面的spel表达式可以解决这个问题吗哥? 用spring 里面的spel表达式可以解决这个问题吗哥?简单的应该可以,复杂的还是老老实实用规则引擎吧 哈哈,脑洞很大啊不过存java代码不行,如果你会写js代码,就可以,java里面有个js代码解析器,可以解析并执行js代码其实如果是很简答的代码,js和java语法差不多,如下public static void main(String[] args) throws Exception { ScriptEngine scriptEngine= MANAGER.getEngineByName("js"); scriptEngine.put("a",2); scriptEngine.put("b",2); System.out.println(scriptEngine.eval("if(a=1){b-100}else{5}")); } 漏了一行代码private final static ScriptEngineManager MANAGER = new ScriptEngineManager(); 肯定可以啊,就是把字符串动态编译成class文件,再动态执行都行(以前看到某篇文章写过)。或者也可以参考jsp的那一套。规则引擎这东西基本上也不用自己写,直接调用工具包。你可以百度一下jexl 用于jython,groovy等虚拟机语言即可规则引擎太庞大,而且不自由 嗯嗯,没有那么多这方面的业现在务,只是想对交易上送报文和返回报文中的某些值作一定的转换。那你直接用java代码写一个通用的转换方法就能实现,没必要搞那么复杂。 嗯嗯,没有那么多这方面的业现在务,只是想对交易上送报文和返回报文中的某些值作一定的转换。那你直接用java代码写一个通用的转换方法就能实现,没必要搞那么复杂。嗯,但是需要定几种规则,1.直接替换新值,2.将旧值进行简单计算,然后转换成新值......等等。 groovy或者dlr 了解下 12楼正解我觉得楼主的状况应该是逻辑变化比较频繁,但是逻辑本身比较简单。这种情况比较适合使用脚本语言。常见的方案是用js或者lua 第一次见这种需求,可以试下,在查询出来之后,拼接字符串。通过io操作生产.java文件。再获取编译器。通过filemanager获取文件管理系统。将.java编译成.class文件。在通过classforname或者loaderclass动态加载.class。再通过反射获取里面的方法。通过invoke调用里面的方法。执行。 java 反射问题 struts2+spring+Junit4中ApplicationContext获取失败 struts求助! java FileReader 绝对路径可读文件 相对路径出错 请求帮助 在线等 谢谢 div层跟着鼠标走,到了下面不下去了 java开发中的迷惑_请教 the problem about Struts1.2 ejb的部署一定要打成jar包吗? java技术题 JBuilder2006在座Struts时的一个问题。 打包出现lib目录打不上包 shro框架的授权问题
简单的应该可以,复杂的还是老老实实用规则引擎吧
不过存java代码不行,如果你会写js代码,就可以,java里面有个js代码解析器,可以解析并执行js代码
其实如果是很简答的代码,js和java语法差不多,如下public static void main(String[] args) throws Exception {
ScriptEngine scriptEngine= MANAGER.getEngineByName("js");
scriptEngine.put("a",2);
scriptEngine.put("b",2);
System.out.println(scriptEngine.eval("if(a=1){b-100}else{5}")); }
嗯,但是需要定几种规则,1.直接替换新值,2.将旧值进行简单计算,然后转换成新值......等等。
我觉得楼主的状况应该是逻辑变化比较频繁,但是逻辑本身比较简单。
这种情况比较适合使用脚本语言。
常见的方案是用js或者lua