springBoot RMI

本文详细介绍了一种基于Java RMI的远程过程调用实现方案,包括服务端接口定义、实现类、发布配置,以及客户端的接口定义、配置类和调用方式。通过具体代码示例,展示了如何在Spring框架下配置并使用RMI进行跨进程的服务调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务端:

1.接口

package com.base.rmi;

/**
 * @Description:
 * rmi接口
 */
public interface RMITestInterface {
    public void testRMI();
}

2.实现类

/**
 * @Description:
 * RMI实现
 */
@Service(value="rmiTestProvider")
public class RmiTestProvider implements RMITestInterface {
    @Override
    public void testRMI() {
        System.out.println("welcome use RMI!");
    }
}

3.发布配置

package com.core.config;

import com.base.rmi.RMITestInterface;
import com.base.rmi.RmiTestProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.remoting.rmi.RmiServiceExporter;

/**
 * @Description:
 * RMI配置
 */
@Configuration
public class RmiConfig {
    @Autowired
    @Qualifier("rmiTestProvider")
    private RmiTestProvider rmiTestProvider;

    @Bean
    public RmiServiceExporter rmiServiceExporter() {
        RmiServiceExporter exporter = new RmiServiceExporter();
        exporter.setServiceInterface(RMITestInterface.class);
        exporter.setServiceName("rmiService");
        exporter.setService(rmiTestProvider);
        exporter.setServicePort(6666);
        exporter.setRegistryPort(5555);
        return exporter;
    }
}

客户端:

1.接口

package com.base.rmi;

/**
 * @Description:
 * rmi接口
 */
public interface RMITestInterface {
    public void testRMI();
}

2.配置类:

package com.core.config;

import com.base.rmi.RMITestInterface;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.remoting.rmi.RmiProxyFactoryBean;

/**
 * @Description:
 * RMI配置
 */
@Configuration
public class RmiConfig {

    @Bean(name = "rmiService")
    public RmiProxyFactoryBean rmiProxyFactoryBean(){
        RmiProxyFactoryBean rmiProxyFactoryBean=new RmiProxyFactoryBean();
        rmiProxyFactoryBean.setServiceInterface(RMITestInterface.class);
        rmiProxyFactoryBean.setServiceUrl("rmi://localhost:5555/rmiService");
        return rmiProxyFactoryBean;
    }
}

 3.调用:

(1)注入:

@Autowired
@Qualifier("rmiService")
private RmiProxyFactoryBean factoryBean;

(2)调用:

   /**
     * 测试RMI
     * @return
     */
	@ResponseBody
	@RequestMapping("/testRMI")
    public String testRMI(){
        RmiTestProvider rmiTestProvider=(RmiTestProvider)factoryBean.getObject();
        rmiTestProvider.testRMI();
        return "RMI调用成功.";
    }

 

转载于:https://my.oschina.net/langwanghuangshifu/blog/2223042

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值