公司有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 {@Autowiredprivate UserDao userDao;/*** sayHello方法** @param request 请求参数数据(JSON字符串)* @return 处理后的业务数据(JSON字符串)*/@Overridepublic 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);}@Overridepublic String sayBye(String request) {ResponeResult error = error(700, "手机号错误");
//        ResponeResult error = error();return JSON.toJSONString(error);}@Overridepublic 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 {@Autowiredprivate HelloService helloService;@Overridepublic 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

SpringBoot和Hprose集成开发相关推荐

  1. 银河麒麟桌面操作系统V10上安装IDEA集成开发环境并导入SpringBoot项目

    前言 本文介绍银河麒麟桌面操作系统V10上安装部署IDEA集成开发环境,并导入从spring官方生成的一个springboot项目进行常规开发调试工作 一.系统信息 1.操作系统版本 右键点击任务栏, ...

  2. SpringBoot与Docker集成

    SpringBoot与Docker集成 许多人正在使用容器包装其Spring Boot应用程序,而构建容器并不是一件容易的事.这是Spring Boot应用程序开发人员的指南,容器对于开发人员而言并非 ...

  3. SpringBoot与SpringCloud集成

    SpringBoot与SpringCloud集成 : 简介 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册 ...

  4. 基于springboot+redis+bootstrap+mysql开发一套属于自己的分布式springcloud云权限架构(七)【权限架构生产者(数据字典)】

    在我们的编码中我们经常会存放一些静态常量,而这些静态变量我们通常都是写死的,如果我们需要改变这些静态变量的值那么我们必须要修改代码,并重新发布程序,这很明显很不符合我们现实中的业务场景,我们现实中的业 ...

  5. 物联网云平台设计与开发:springboot项目搭建与开发(后端)

    目录 实验目的 实验内容 具体实验步骤 第一步:构建springboot项目 第二步:项目集成spring-web.Mysql驱动.Mybatis等框架. 第三步:安装Mysql软件,使用Navica ...

  6. SpringBoot 中JPA集成PostgreSql(详细步骤)避坑!

    SpringBoot 中JPA集成PostgreSql(详细步骤) 什么是JPA?(Java Persistence API) Spring Data JPA, part of the larger ...

  7. SpringBoot项目中集成第三方登录功能

    SpringBoot项目中集成第三方登录功能 引言 1 环境准备 2 代码实现 3 第三方平台认证申请 4 打包和部署项目 5 第三方平台登录认证测试 6 参考文章 引言 最近想把自己在公众号上介绍过 ...

  8. 视频教程-SpringBoot微信公众号开发-微信开发

    SpringBoot微信公众号开发 就职于国内知名在线互联网旅游公司,10+互联网开发经验,精通前后端开发 刘志强 ¥149.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免 ...

  9. SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL、利用QueryDSL实现单表RUD、新增类初始化逻辑...

    1 QueryDSL介绍 1.1 背景 QueryDSL的诞生解决了HQL查询类型安全方面的缺陷:HQL查询的扩展需要用字符串拼接的方式进行,这往往会导致代码的阅读困难:通过字符串对域类型和属性的不安 ...

  10. springboot+vue全栈开发

    目录 SpringBoot+Vue全栈开发 前后端框架: 项目目录结构: springboot项目创建配置 开发环境热部署 路由映射 Method匹配 参数传递 注意点1 注意点2 SpringBoo ...

最新文章

  1. 滴滴CTO张博:我人生重要的四次选择
  2. Merge Sorted Array
  3. VTK:图片之ImageSlice
  4. LeetCode Algorithm 7. 整数反转
  5. 牛客 - 导航系统(最小生成树+Floyd)
  6. pacificA架构介绍
  7. SAP CRM Fiori应用Simulation pipeline里dualSlider的实现
  8. Python—实训day6—爬取汽车消费投诉案例
  9. Mysql函数Last_insert_id()的真正含义
  10. iOS 实现启动屏动画(Swift实现,包含图片适配)
  11. 寻找中项和第k小元素c语言,分治法第k小元素poj2104.ppt
  12. 一位挪威博士的PolarDB资深架构师之路
  13. 计算机教案word格式模板,大学授课教案模板Word格式
  14. matlab中beta是什么软件,软件版本中的beta是什么意思?
  15. WPF MessageBox 添加确认取消按钮 并判断
  16. 微信视频聊天怎么美颜?以下方法可以帮到你!
  17. (近5w字)面向小白のVue全家桶开发电商管理系统项目总结文档
  18. 个人申请微信H5支付接口(个人免签约支付平台)
  19. imgaug数据增强库使用
  20. UNITY 使用代码更换地形中草的贴图

热门文章

  1. java调用通用对话框_使用通用对话框
  2. 计算机主机内部结构连接,电脑主机内部结构图详解
  3. windows自带备份驱动
  4. android 各类开源项目整理 包括 个性化控件 工具库 完整优秀项目
  5. Android实现百度离线地图+gps定位
  6. [转]Linux下的虚拟光驱和虚拟软驱
  7. 网络安全工程师视频教程从入门到精通学习_网络安全入门教程
  8. HTML5+CSS3的速查手册
  9. html中嵌入flvplayer.swf播放器,播放视频
  10. ubuntu中安装flash播放器