Hessian介绍:

  Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

  Hessian分为服务端和客户端两部分。

一、服务端

1、添加pom.xml依赖

<dependency><groupId>com.caucho</groupId><artifactId>hessian</artifactId><version>4.0.37</version></dependency>

2、添加interface 接口

package com.sxdx.oa_service.hessian.service;public interface HelloWorldService {String sayHello(String name);
}

3、实现HelloWorldService 这个接口

package com.sxdx.oa_service.hessian.service.impl;import com.sxdx.oa_service.hessian.service.HelloWorldService;
import org.springframework.stereotype.Service;@Service
public class HelloWorldServiceImpl implements HelloWorldService {@Overridepublic String sayHello(String name) {return "Hello World! " + name;}
}

4、发布服务

package com.sxdx.oa_service.hessian.controller;import com.sxdx.oa_service.hessian.service.HelloWorldService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.remoting.caucho.HessianServiceExporter;
import org.springframework.stereotype.Controller;@Controller
public class HessianController {@Autowiredprivate HelloWorldService helloWorldService;//发布服务 (此处定义外部访问路径,比如本例中,对外提供的API 为 http://127.0.0.1:8080/oaframe/HelloWorldService)@Bean(name = "/HelloWorldService")public HessianServiceExporter accountService() {HessianServiceExporter exporter = new HessianServiceExporter();exporter.setService(helloWorldService);exporter.setServiceInterface(HelloWorldService.class);return exporter;}
}

二、客户端

1、添加pom.xml依赖

<dependency><groupId>com.caucho</groupId><artifactId>hessian</artifactId><version>4.0.37</version></dependency>

2、添加interface 接口(需要和服务端接口类的类名、方法名完全一样,对包路径是否相同没有要求)

package cn.org.csip.vim.sso.service;public interface HelloWorldService {String sayHello(String name);
}

3、添加Hessian客户端组件(我本来把这部分代码写在了一个Controller中,但是启动会报错,放在启动类中就可以,暂时没确定原因,感觉像是spring注册bean顺序的原因)

package cn.org.csip.vim.sso;import cn.org.csip.vim.sso.service.HelloWorldService;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.remoting.caucho.HessianProxyFactoryBean;@SpringBootApplication
public class HessiantestApplication {@Beanpublic HessianProxyFactoryBean helloClient() {HessianProxyFactoryBean factory = new HessianProxyFactoryBean();factory.setServiceUrl("http://127.0.0.1:8080/oaframe/HelloWorldService");factory.setServiceInterface(HelloWorldService.class);return factory;}public static void main(String[] args) {SpringApplication.run(HessiantestApplication.class, args);}
}

4、添加访问测试代码

package cn.org.csip.vim.sso.controller;import cn.org.csip.vim.sso.service.HelloWorldService;
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HessianController {@Autowiredprivate HelloWorldService helloWorldService;@RequestMapping("/test")public String test() {return helloWorldService.sayHello("Spring boot with Hessian.");}}

5、浏览器访问测试(返回成功)

参考文章:https://blog.csdn.net/sias1991/article/details/75270547

转载于:https://www.cnblogs.com/Garnett-Boy/p/10103087.html

Hessian学习(springboot环境)相关推荐

  1. Jenkins持续集成学习-Windows环境进行.Net开发4

    目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...

  2. 一步步学习SpringBoot(一) 快速搭建一个web

    适应读者 前端工程师(java系的公司) 前端架构师(java系的公司) java工程师 测试工程师(java系的公司) 什么是SpringBoot? Spring Boot便是一个社区反馈推动的项目 ...

  3. springboot 获取项目路径_怎样学习 SpringBoot

    学习 SpringBoot 需要做哪些准备? IDE:IDEA 基础工具:JDK1.8.Maven SpringBoot 背景介绍 什么是 SpringBoot Spring Boot是 Spring ...

  4. 零基础学习SpringBoot

    注:本系列教程,又全部进行了更为深入的重写,可关注公众号:java4all,或进入SpringBoot教程,查看最新资料. 本篇是零基础学习SpringBoot专栏的目录,随时更新,可直接点击相应链接 ...

  5. 学习Springboot一之Springboot+Mybatis(注解形式)+Mysql+Web简单Demo

    学习SpringBoot,通过Springboot简单配置连接Mysql数据库,采用Mybatis注解方式实现数据库"增.删.改.查",结合Spring web实现页面呈现后,. ...

  6. 都在强力进阶学习 springboot 实战派文档

    不仅如此,本文还对比讲解了多种同类技术的使用和区别,读者可以根据自己的喜好进行选择. 开发模式:本文讲解了历史悠久,但现在依然被广泛使用的分层应用开发模式 MVC(ModelView Controll ...

  7. Java学习——springboot整合mysql、redis、mongodb

    Java学习--springboot整合mysql.redis.mongodb 1. 环境搭建 2. 搭建目录结构 3. 各层内容 4. 测试 1. 环境搭建 创建SpringBoot工程时勾选如下技 ...

  8. 学习SpringBoot笔记以及错误记录

    学习SpringBoot笔记以及错误记录 <1>. 启动类(SpringBootApplication)放错位置 错误场景:MainApplication类不应放在默认的src.main. ...

  9. 项目总结10:通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题...

    通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题 关键字 springboot热部署  ClassCastException异常 反射 ...

  10. 深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) By 李泽南2017年6月26日 15:57 本周一(6 月 19 日)机器之心发表文章《我的深度学习开发环境详解:Te

    深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) 机器之心 2017-06-25 12:27 阅读:108 摘要:参与:李泽南.李亚洲本周一(6月19日)机器之心发表文章<我的深 ...

最新文章

  1. mac下找不到.m2文件解决方法
  2. 最通俗的机器学习介绍
  3. linux信号(signal) 机制分析
  4. python Dask库安装方法
  5. ASP.NET Core IdentityServer4 新手上路
  6. 设置最大值_变频器用远传压力表控制恒压供水参数设置
  7. html登录界面设计代码_最简洁实现Github登录的JS代码示例
  8. eclipse + mapxtreme 代码示例1
  9. 一行命令开启VNC 和windows之间复制粘贴功能
  10. Dell Dock 无法启动解决办法
  11. 线性代数及其matlab应用课后题答案,线性代数课后习题答案全)习题详解.docx
  12. Effective C++中文版
  13. android+apk+自动安装,Android版本更新下载apk自动安装的方法
  14. android即时通讯ui框架,android IM即时通信之聊天界面UI框架
  15. 计算机网络常用知识总结!
  16. MySQL中关于字符编码的配置
  17. c语言10进制转2进制字符串,C语言十进制转二进制——实现和思考
  18. 中标麒麟系统u盘安装_优盘安装《中标麒麟7.0(龙芯)》
  19. wan口有流量但电脑上不了网_电脑显示已连接上但是无法上网怎么办
  20. WPF实现ScrollViewer平滑滚动效果

热门文章

  1. nvm npm node
  2. android----AsyncHttpClient的get,post和图片上传
  3. testlink配置修改
  4. 服务器设计笔记(1)-----消息的封装
  5. web服务器mysql日志分析
  6. linux dev log设备文件,Linux中设备号及设备文件【转】
  7. c语言熵值法,干货 | R语言熵值法详解(附代码) 秒懂自定义函数
  8. redis 分布式锁_基于 Redis 实现的分布式锁
  9. 网上五花八门的单片机教程,到底应该怎么整理学习过程
  10. java重新打开jframe,Java的; Jframe不重新绘制