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 {@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集成开发相关推荐
- 银河麒麟桌面操作系统V10上安装IDEA集成开发环境并导入SpringBoot项目
前言 本文介绍银河麒麟桌面操作系统V10上安装部署IDEA集成开发环境,并导入从spring官方生成的一个springboot项目进行常规开发调试工作 一.系统信息 1.操作系统版本 右键点击任务栏, ...
- SpringBoot与Docker集成
SpringBoot与Docker集成 许多人正在使用容器包装其Spring Boot应用程序,而构建容器并不是一件容易的事.这是Spring Boot应用程序开发人员的指南,容器对于开发人员而言并非 ...
- SpringBoot与SpringCloud集成
SpringBoot与SpringCloud集成 : 简介 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册 ...
- 基于springboot+redis+bootstrap+mysql开发一套属于自己的分布式springcloud云权限架构(七)【权限架构生产者(数据字典)】
在我们的编码中我们经常会存放一些静态常量,而这些静态变量我们通常都是写死的,如果我们需要改变这些静态变量的值那么我们必须要修改代码,并重新发布程序,这很明显很不符合我们现实中的业务场景,我们现实中的业 ...
- 物联网云平台设计与开发:springboot项目搭建与开发(后端)
目录 实验目的 实验内容 具体实验步骤 第一步:构建springboot项目 第二步:项目集成spring-web.Mysql驱动.Mybatis等框架. 第三步:安装Mysql软件,使用Navica ...
- SpringBoot 中JPA集成PostgreSql(详细步骤)避坑!
SpringBoot 中JPA集成PostgreSql(详细步骤) 什么是JPA?(Java Persistence API) Spring Data JPA, part of the larger ...
- SpringBoot项目中集成第三方登录功能
SpringBoot项目中集成第三方登录功能 引言 1 环境准备 2 代码实现 3 第三方平台认证申请 4 打包和部署项目 5 第三方平台登录认证测试 6 参考文章 引言 最近想把自己在公众号上介绍过 ...
- 视频教程-SpringBoot微信公众号开发-微信开发
SpringBoot微信公众号开发 就职于国内知名在线互联网旅游公司,10+互联网开发经验,精通前后端开发 刘志强 ¥149.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免 ...
- SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL、利用QueryDSL实现单表RUD、新增类初始化逻辑...
1 QueryDSL介绍 1.1 背景 QueryDSL的诞生解决了HQL查询类型安全方面的缺陷:HQL查询的扩展需要用字符串拼接的方式进行,这往往会导致代码的阅读困难:通过字符串对域类型和属性的不安 ...
- springboot+vue全栈开发
目录 SpringBoot+Vue全栈开发 前后端框架: 项目目录结构: springboot项目创建配置 开发环境热部署 路由映射 Method匹配 参数传递 注意点1 注意点2 SpringBoo ...
最新文章
- 滴滴CTO张博:我人生重要的四次选择
- Merge Sorted Array
- VTK:图片之ImageSlice
- LeetCode Algorithm 7. 整数反转
- 牛客 - 导航系统(最小生成树+Floyd)
- pacificA架构介绍
- SAP CRM Fiori应用Simulation pipeline里dualSlider的实现
- Python—实训day6—爬取汽车消费投诉案例
- Mysql函数Last_insert_id()的真正含义
- iOS 实现启动屏动画(Swift实现,包含图片适配)
- 寻找中项和第k小元素c语言,分治法第k小元素poj2104.ppt
- 一位挪威博士的PolarDB资深架构师之路
- 计算机教案word格式模板,大学授课教案模板Word格式
- matlab中beta是什么软件,软件版本中的beta是什么意思?
- WPF MessageBox 添加确认取消按钮 并判断
- 微信视频聊天怎么美颜?以下方法可以帮到你!
- (近5w字)面向小白のVue全家桶开发电商管理系统项目总结文档
- 个人申请微信H5支付接口(个人免签约支付平台)
- imgaug数据增强库使用
- UNITY 使用代码更换地形中草的贴图