springmvc 创建公共接口对应服务端和客户端

1.接口服务端

1.1.springmvc搭建好框架。

1.2.Controller(控制类)创建  【PubHealthController】

package com.oracle.sx.businessData.action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSONObject;
import com.common.util.CommonConst.METHOD_NAME;
import com.oracle.sx.basicData.service.IDepartmentInfoService;
import com.oracle.sx.basicData.service.IHoldInfoService;
import com.oracle.sx.basicData.service.IMechanismInfoService;
import com.oracle.sx.basicData.service.IPersonService;
import com.oracle.sx.businessData.service.IChildHealthCheckService;
import com.oracle.sx.businessData.service.IChildrenHealthCareService;
import com.oracle.sx.businessData.service.IChronicDiseaseRecordService;
import com.oracle.sx.businessData.service.IHealthAssessmentService;
import com.oracle.sx.businessData.service.IHealthEducationRecordService;
import com.oracle.sx.businessData.service.IHealthRecordInfoService;
import com.oracle.sx.businessData.service.IPsychiatricManagementService;
import com.oracle.sx.businessData.service.IWomenHealthCareService;

/**
 * 公共控制类
 *
 * @author Administrator
 *
 */
@Controller
@RequestMapping("/jsp")

public class PubHealthController {
    private static final Logger log = Logger.getLogger(PubHealthController.class);
    @Resource
    private IMechanismInfoService mechanismInfoService; // 机构服务类
    @Resource
    private IChildrenHealthCareService childrenHealthCareService; // 儿童保健

    @RequestMapping(value = "invoke", method = RequestMethod.POST)
    @ResponseBody
    public void invoke(HttpServletRequest request, HttpServletResponse response) {
        try {
            response.setContentType("application/json; charset=utf-8");
            response.setCharacterEncoding("UTF-8");
            String objjson = request.getParameter("json");
            log.info("进入方法......");
            log.info("前端json:" + objjson);
            String jsonStr = this.getData(objjson);
            log.info("返回json:" + jsonStr);
            PrintWriter out = response.getWriter();
            out.write(jsonStr);
        } catch (IOException e) {
            e.printStackTrace();
            log.info("接口异常信息:" + e);
        }
    }

    /**
     * 解析客户获取的json数据
     *
     * @param objectJson
     *            客户端传入的json数据
     */
    public String getData(String objectJson) {
        String objStr = "";
        try {
            // 将json字符串转换为json对象
            JSONObject jsonObj = new JSONObject();
            jsonObj = (JSONObject) JSONObject.parse(objectJson);
            jsonObj.get("method");
            log.info("method:" + jsonObj.get("method"));
            String method = jsonObj.get("method").toString(); // 接口方法名
            String param = jsonObj.get("param").toString(); // 接口方法对应传参
            if (method.equals(METHOD_NAME.ADD_NB_FAMILY_VISIT)) {
                // 新生儿家庭访视新增
                JSONObject obj = (JSONObject) JSONObject.parse(param);
                objStr = childrenHealthCareService.addNBFamilyVisit(obj);
                log.info("新增新生儿家庭访视返回参数:" + objStr);
            } else if (method.equals(METHOD_NAME.GET_NB_FAMILY_VISIT)) {
                // 新生儿家庭访视记录查询
                // JSONObject obj = (JSONObject) JSONObject.parse(param);
                // objStr = childrenHealthCareService.getNBFamilyVisit(obj);
                // log.info("新生儿家庭访视记录查询返回参数:" + objStr);
            } else if (method.equals(METHOD_NAME.GET_NB_FAMILY_VISITS_BY_DATE)) {
                // 新生儿家庭访视记录(时间段查询)
                JSONObject obj = (JSONObject) JSONObject.parse(param);
                objStr = childrenHealthCareService.getNBFamilyVisitsByDate(obj);
                log.info("新生儿家庭访视记录(时间段查询)返回参数:" + objStr);
            } else if (method.equals(METHOD_NAME.ADD_HOS)) {
                // 新增机构信息
                JSONObject obj = (JSONObject) JSONObject.parse(param);
                objStr = mechanismInfoService.addHos(obj);
                log.info("新增机构信息返回参数:" + objStr);
            }
            log.info("method:" + method);
        } catch (

        Exception e) {
            log.error("获取前端json数据错误:" + e);
        }
        return objStr;
    }
}

1.3.其他搭建完全与springmvc搭建相同。服务端搭建完成。


2.客户端搭建

2.1.创建文件file1.json

{
  "plat": "b47ffabc998547e4bbe46b92eb8aab06",
  "method": "getBaseInfoMessageCardsByDate",
  "param": {
   "modifyTimeStart" : "2017-05-01",
   "modifyTimeEnd" : "2017-05-21",
   "showNum" : "10",
   "page" : "1"
  }
}

2.2.创建ReadJsonFile类读取json文件

package com.test.JsonFile;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import com.alibaba.fastjson.JSONObject;

public class ReadJsonFile {
    public static String ReadFile(String Path) {
        String rootPath = ReadJsonFile.class.getResource("").getFile().toString();
        BufferedReader reader = null;
        String laststr = "";
        try {
            FileInputStream fileInputStream = new FileInputStream(rootPath + Path);
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
            reader = new BufferedReader(inputStreamReader);
            String tempString = null;
            while ((tempString = reader.readLine()) != null) {
                laststr += tempString;
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        JSONObject jsonObj = new JSONObject();
        jsonObj = (JSONObject) JSONObject.parse(laststr);
        return jsonObj.toJSONString();
    }

    public static void main(String[] args) {
        // 取得根目录路径
        String rootPath = ReadJsonFile.class.getResource("").getFile().toString();
        // 当前目录路径
        // String currentPath1=getClass().getResource(".").getFile().toString();
        // String currentPath2=getClass().getResource("").getFile().toString();
        // //当前目录的上级目录路径
        // String parentPath=getClass().getResource("../").getFile().toString();
        System.out.println(rootPath);
    }
}

2.3.创建读取服务端url类

package com.test;

import java.util.HashMap;
import java.util.Map;

import org.apache.log4j.Logger;

import com.alibaba.fastjson.JSONObject;
import com.test.JsonFile.ReadJsonFile;

/**
 * 接口公共方法
 *
 * @author Administrator
 */
public abstract class InterfaceMethod {
    private static final Logger log = Logger.getLogger(InterfaceMethod.class);

    @SuppressWarnings("unchecked")
    public static void addNBFamilyVisit() {
        //String dataStr = ReadJsonFile.ReadFile("file1.json");
        //String dataStr = ReadJsonFile.ReadFile("orgInfo.json");
        //String dataStr = ReadJsonFile.ReadFile("health.json");
        String dataStr = ReadJsonFile.ReadFile("women8.json");
        try {
            Map<String, Object> jsonMap = new HashMap<String, Object>();
            JSONObject object = new JSONObject();

            String sr = HttpRequest.sendPost("http://127.0.0.1:8080/EHR/jsp/invoke.do", "json="+dataStr);
            System.out.println("调用返回参数:" + sr);
            
        } catch (Exception e) {
            log.error("测试接口错误:" + e);
        }
    }

    public static void main(String[] args) {
        addNBFamilyVisit();// 新增新生儿家庭访视记录测试
    }
}

3.启动服务端在启动客户端可以用于测试。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值