1 新建一个勾选了Spring web的SpringBoot项目,在pom.xml中导入jython依赖。
<dependency> <groupId>org.python</groupId> <artifactId>jython-standalone</artifactId> <version>2.7.0</version> </dependency>
2 新建一个Python项目,写一个add.py文件包含一个加法函数。
def add(a,b): return a+b
3 在SpringBoot项目中新建一个TestController类,写如下代码:
package com.example.demo; import org.python.core.PyFunction; import org.python.core.PyInteger; import org.python.core.PyObject; import org.python.util.PythonInterpreter; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @RequestMapping("test") public String test(){ //创建一个Python解释器对象 PythonInterpreter interpreter=new PythonInterpreter(); int a=5,b=10; //要执行的py文件路径 interpreter.execfile("C:\\Users\\Guangsheng Li\\Desktop\\add\\add.py"); //指定要调用的py文件种的函数 PyFunction function=interpreter.get("add",PyFunction.class); //执行python中的函数 PyObject obj = function.__call__(new PyInteger(a),new PyInteger(b)); System.out.println(obj.toString()); return obj.toString(); } }
4 启动项目,在控制台打印运行结果15;浏览器访问 http://localhost:8080/test,页面显示15.