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.