文章目录

    • application.yml配置
    • 封装Result返回类
    • 调用Python


application.yml配置

server:
  port: 9000

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver

  thymeleaf:
    cache: false  # 模板热部署、禁用 thymeleaf 缓存
    mode: HTML
    suffix: .html
    prefix: classpath:/templates/
    encoding: UTF-8
    servlet:
      content-type: text/html

  mvc:
    static-path-pattern: /static/**  # 添加static文件夹下其他文件夹可访问

mybatis:
  type-aliases-package: com.sxf.web.mapper
  mapper-locations: classpath:mapper/*.xml

封装Result返回类

package com.scau.demo.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Result extends HashMap<String, Object> {
    @Override
    public Result put(String key, Object value){
        super.put(key, value);
        return this;
    }

    public Result(){
    }

    public static Result error(int code, String msg){
        Result r = new Result();
        r.put("code", code);
        r.put("msg", msg);
        return r;
    }

    public static Result error(){
        return error(500, "未知异常,请联系管理员");
    }

    public static Result error(String msg){
        return error(500, msg);
    }

    public static Result ok(Map<String, Object> map){
        Result r = new Result();
        r.put("code", 0);
        r.putAll(map);
        return r;
    }

    public static Result ok(List<Map<String,Object>> list){
        Result r = new Result();
        r.put("code", 0);
        r.put("msg", list);
        return r;
    }

    public static Result ok(){
        Result r = new Result();
        r.put("code", 0);
        r.put("msg", "操作成功");
        return r;
    }

    public static Result ok(Object msg) {
        Result r = new Result();
        r.put("code", 0);
        r.put("msg", msg);
        return r;
    }
}

使用时:

public Result get(String openid) {
    Result result = userMapper.get(openid);
    if (result != null)
        return Result.ok(result);
    else
        return Result.error("异常");
}
@RequestMapping("/test")
public Result test() {
    List<Map<String, Object>> list = new ArrayList<>();
    Map<String, Object> map = new HashMap<>(2);
    map.put("itemId", 1);
    list.add(map);
    map = new HashMap<>(2);
    map.put("itemId", 2);
    list.add(map);
    return new Result().ok(list);
}

调用Python

public String python() {
    try {
        String[] args = new String[] {"python", "tool.py"};
        Process process = Runtime.getRuntime().exec(args);
        BufferedReader successMsg = new BufferedReader(new InputStreamReader(process.getInputStream()));
        BufferedReader errorMsg = new BufferedReader(new InputStreamReader(process.getErrorStream()));
        String line = null;
        while ((line=successMsg.readLine())!=null) {
            System.out.println(line);
        }
        while ((line=errorMsg.readLine())!=null) {
            System.out.println(line);
        }
        successMsg.close();
        errorMsg.close();
        process.waitFor();
    }catch (Exception e){
        e.printStackTrace();
    }
    return "ok";
}

中文乱码解决方法:中文乱码

或者参考:https://wwwblogs/nuccch/p/8435693.html
官网:https://www.jython/download
精简版jar:jython-compile-maven-plugin-test-1.2-jar-with-dependencies.jar

// Python面向函数式编程: 在Java中调用Python函数
PythonInterpreter interpreter = new PythonInterpreter();
// 加载Python程序
interpreter.execfile("D:\\add.py");
// 调用Python程序中的函数
// 第一个参数为期望获得的函数(变量)的名字,第二个参数为期望返回的对象类型
PyFunction pyFunction = interpreter.get("add", PyFunction.class);
int a = 5, b = 10;
//调用函数,如果函数需要参数,在Java中必须先将参数转化为对应的“Python类型”
PyObject pyobj = pyFunction.__call__(new PyInteger(a), new PyInteger(b)); 
System.out.println("the anwser is: " + pyobj);

更多推荐

SpringBoot代码片段,方便自己查看[持续添加]