您的位置:首页 > 编程语言 > Java开发

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

2017-06-21 10:33 281 查看
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.启动服务端在启动客户端可以用于测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc 接口
相关文章推荐