SpringBoot和Hprose集成开发

公司有php和java开发,php开发了网关,要求用Hprose提供服务,网上教程太少,自己集成springboot和Hprose,还继承了spring和Hprose,主要思路是继承HproseServlet;然后注册方法,网关请求到服务端的是json字符串,服务端返回的也是json字符串,可能业务逻辑有所不同!底下附demo下载链接!

 

接口:

package com.example.demo.service;

/**
 * HelloService接口
 *
 * @author Ding.Jie
 */
public interface HelloService {
    /**
     * sayHello方法
     *
     * @param request 请求参数数据(JSON字符串)
     * @return 处理后的业务数据(JSON字符串)
     */
    String sayHello(String request);

    /**
     * sayBye方法
     *
     * @param request 请求数据
     * @return
     */
    String sayBye(String request);

    /**
     * getUser方法
     * @param request 请求数据
     * @return
     */
    String getUser(String request);
}

 实现类:

package com.example.demo.service.impl;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.example.demo.base.BaseService;
import com.example.demo.base.ResponeResult;
import com.example.demo.dao.UserDao;
import com.example.demo.model.User;
import com.example.demo.request.ResultData;
import com.example.demo.service.HelloService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Optional;

/**
 * HelloService接口实现类
 *
 * @author Ding.Jie
 */
@Service
public class HelloServiceImpl extends BaseService implements HelloService {
    @Autowired
    private UserDao userDao;

    /**
     * sayHello方法
     *
     * @param request 请求参数数据(JSON字符串)
     * @return 处理后的业务数据(JSON字符串)
     */
    @Override
    public String sayHello(String request) {
        ResultData resultData = JSON.parseObject(request, new TypeReference<ResultData>() {
        });
        System.out.println(resultData);
//        Optional<User> user = userDao.findById(Integer.valueOf(resultData.getData().getTemplateid()));
        User user = new User();
        user.setName("小丁");
        user.setAge(18);
        ResponeResult success = success(user);
        return JSON.toJSONString(success);
    }

    @Override
    public String sayBye(String request) {
        ResponeResult error = error(700, "手机号错误");
//        ResponeResult error = error();
        return JSON.toJSONString(error);
    }

    @Override
    public String getUser(String request) {
        ResponeResult error = error();
        return JSON.toJSONString(error);
    }
}

HproseServlet:

package com.example.demo.servlet;

import com.example.demo.service.HelloService;
import hprose.common.HproseMethods;
import hprose.server.HproseServlet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;

import javax.servlet.annotation.WebServlet;

/**
 * HproseServlet服务注册接口
 * Created by Ding.Jie on 2018/10/23
 */
@WebServlet(urlPatterns = {"/api/v1.0.0/javatest/sayHello", "/api/v1.0.0/javatest/sayBye", "/api/v1.0.0/javatest/getUser"})
//标记为servlet,以便启动器扫描。
public class HproseServletDemo extends HproseServlet {
    @Autowired
    private HelloService helloService;

    @Override
    public void setGlobalMethods(HproseMethods methods) {
        super.setGlobalMethods(methods);
//        methods.addMethod("sayHello",helloService); 注册sayHello单个方法
        methods.addInstanceMethods(helloService);//注册HelloService下所有的publice方法
    }
}

扫描Servlet

@SpringBootApplication
@ServletComponentScan   //启动器启动时,扫描本目录以及子目录带有的webservlet注解的
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

 

 demo下载链接 :springboot_hprose_jpa_demo

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值