当前位置: 首页 > article >正文

基于springboot的rmi远程调用

基于springboot的rmi远程调用

1.创建父工程

创建一个springboot的工程架构,并设置依赖,子模块继承父依赖。
在这里插入图片描述

2.创建rmi-api

rmi-api作为公共模块,包含用户实体类,用户接口。

  • 用户实体类代码:

    package com.demo.entity;
    
    import java.io.Serializable;
    
    public class User implements Serializable {
        private Integer id;
    
        private String name;
    	//省略get、set、toString方法
    }
    
    
  • 接口方法和截图如下:
    在这里插入图片描述

3.创建rmi-server

在rmi-demo父工程的基础上创建一个springboot的web模块,其具体操作如下:

  1. pom文件引入rmi-api公共模块
    在这里插入图片描述

  2. 编写服务类方法
    在这里插入图片描述

  3. 编写配置类暴露服务方法

    package com.demo.config;
    
    import com.demo.service.IUserService;
    import com.demo.service.UserServiceImpl;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.remoting.rmi.RmiServiceExporter;
    
    @Configuration
    public class RmiConfig {
        @Autowired
        private UserServiceImpl userService;
    
        //将服务暴露
        @Bean
        public RmiServiceExporter rmiServiceExporter(){
            RmiServiceExporter rmiServiceExporter = new RmiServiceExporter();
            rmiServiceExporter.setServiceInterface(IUserService.class); //服务接口
            rmiServiceExporter.setService(userService); //服务实例
            rmiServiceExporter.setServiceName("userService"); //服务名称
            rmiServiceExporter.setRegistryPort(2002);//服务端口
            return rmiServiceExporter;
        }
    }
    

4.创建rmi-client

在rmi-demo父工程的基础上创建一个springboot的web模块,其具体操作如下:

  1. 在pom文件引入公共的api模块
    在这里插入图片描述

  2. 编写配置类进行服务发现

    package com.demo.config;
    
    import com.demo.service.IUserService;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.remoting.rmi.RmiProxyFactoryBean;
    
    @Configuration
    public class RmiConfig {
        //获取rmi-server暴露的服务
        @Bean("userService")
        public RmiProxyFactoryBean rmiProxyFactoryBean(){
            RmiProxyFactoryBean rmiProxyFactoryBean = new RmiProxyFactoryBean();
            //设置服务地址
            rmiProxyFactoryBean.setServiceUrl("rmi://localhost:2002/userService");
            //设置服务接口
            rmiProxyFactoryBean.setServiceInterface(IUserService.class);
            return rmiProxyFactoryBean;
        }
    }
    

5.测试

防止端口冲突,需要更改application里面的服务启动端口。

  1. 先启动rmi-server服务
    在这里插入图片描述
  2. 然后启动rmi-client服务(启动的时候,就进行服务调用。)

在这里插入图片描述

  1. 结果输出如下:

    在这里插入图片描述


http://www.kler.cn/a/506597.html

相关文章:

  • API调用过程中遇到错误的解决方案
  • 清除前端缓存的方式
  • OpenCV相机标定与3D重建(54)解决透视 n 点问题(Perspective-n-Point, PnP)函数solvePnP()的使用
  • python助力WRF自动化运行
  • JavaEE之常见的锁策略
  • Linux 音视频入门到实战专栏(音频篇)基于alsa api的音频播放/录制流程
  • 2024年细讲前端工程化 万字总结!!
  • D3.js及实例应用
  • Apache搭建https服务器
  • Windows上安装和配置Tabby终端工具并实现远程ssh连接内网服务器
  • C#中字符串方法
  • react native学习【6.1】——列表视图
  • 【Qt】03-页面切换
  • MyBatis映射文件SQL深入(动态SQL)
  • Windows部署NVM并下载多版本Node.js的方法(含删除原有Node的方法)
  • K8S集群常用命令
  • 使用 MailKit 从 Outlook.Office365.com 下载邮件附件的教程
  • 以太坊(概念与原理)
  • 使用防抖与节流优化 Vue 中的异步函数调用
  • 使用 Golang 编译 Linux 可运行文件