`
hpgary
  • 浏览: 82075 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Spring boot rmi 远程方法调用

    博客分类:
  • Java
 
阅读更多

 RMI 远程方法调用(Remote Method Invoke)

  

远程和本地都有的接口类:

package com.rmi.service;

public interface HelloService {
	public String say(String name) ; 
}

 

远程接口实现类:

package com.rmi.service.impl;

import org.springframework.stereotype.Service;

import com.rmi.service.HelloService;

@Service()  
public class HelloServiceImpl implements HelloService {

	@Override
	public String say(String name) {
		return name + "-- hpgary " ;
	}

}

 远程服务启动类:

package com.rmi.server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.remoting.rmi.RmiServiceExporter;

import com.rmi.service.HelloService;

@SpringBootApplication(scanBasePackages = "com.rmi")
public class App extends SpringBootServletInitializer {
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(App.class);
	}

	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
	/* rmi 服务器暴漏 服务*/
	@Bean
	public RmiServiceExporter rmiServiceExporter(HelloService helloService){
		RmiServiceExporter rmiServiceExporter = new RmiServiceExporter();
                // 客户端通过rmi调用的端口
		rmiServiceExporter.setRegistryPort(1111);
                // 客户端调用注册调用的服务名
		rmiServiceExporter.setServiceName("hello");
                // 注册的service
		rmiServiceExporter.setService(helloService); 
                //注册的接口
		rmiServiceExporter.setServiceInterface(HelloService.class) ;
		return rmiServiceExporter ;
	}
}

   本地使用

package com.rmi.client;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.remoting.rmi.RmiProxyFactoryBean;

import com.rmi.service.HelloService;

@SpringBootApplication(scanBasePackages = "com.rmi")
public class App extends SpringBootServletInitializer {
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(App.class);
	}

	public static void main(String[] args) {
		ConfigurableApplicationContext run = SpringApplication.run(App.class, args); 
		//获取方法
		HelloService bean = run.getBean(HelloService.class);
		//调用接口方法,实际上是远程方法
		System.out.println(bean.say("hf"));
	}
	/*本地注册远程服务,通过tcp 调用远程方法*/
	@Bean
	public RmiProxyFactoryBean rmiProxyFactoryBean() {
		RmiProxyFactoryBean rmiProxyFactoryBean = new RmiProxyFactoryBean();
		rmiProxyFactoryBean.setServiceUrl("rmi://127.0.0.1:1111/hello"); 
		rmiProxyFactoryBean.setServiceInterface(HelloService.class); 
		return rmiProxyFactoryBean;
	}
}

 

0
1
分享到:
评论

相关推荐

    使用spring远程调用服务端接口实现WebService功能

    这个技术允许客户端和服务端通过HTTP协议进行通信,实现远程方法的调用,类似于RMI(Remote Method Invocation)但更具有Web友好性。下面将详细阐述Spring框架如何帮助开发者实现这一功能。 首先,我们要理解Spring...

    Spring RMI

    - **事务支持**:Spring可以为RMI调用提供事务管理,确保操作的原子性和一致性。 ### 4. Spring AOP与RMI结合 Spring的面向切面编程(AOP)可以与RMI集成,提供日志记录、性能监控、安全控制等功能。通过定义切点...

    spring RMI 实用分享

    Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,允许程序在不同的Java虚拟机(JVM)之间进行通信,实现分布式系统。在本文中,我们将深入探讨Spring框架如何集成RMI,以及如何创建和使用...

    word源码java-fleet-spring-boot:SpringBoot教程,SpringBoot的各种简单示例,快速入门使用Sprin

    fleet-spring-boot Spring Boot 教程,Spring Boot 的各种简单示例,快速入门使用 Spring Boot 各种组件 示例项目 基础部分: :Spring Boot 快速入门 Hello world 示例 :Spring Boot 自定义 Banner (启动图案) ...

    spring+rmi实现非本地部署

    在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而RMI(Remote Method Invocation)则是Java提供的一种远程方法调用机制,用于构建分布式应用程序。将Spring与RMI结合,可以实现非本地部署的服务,...

    java spring rmi

    - **事务管理**:Spring的事务管理支持可以跨RMI调用进行事务控制。 4. **RMI与Spring AOP的结合**: Spring的面向切面编程(AOP)可以用于RMI服务,如添加日志、性能监控、安全性检查等横切关注点。 5. **RMI与...

    spring rmi 改造

    在IT行业中,Spring框架是Java开发中的一个基石,它提供了丰富的功能来简化应用程序的构建,包括远程过程调用(Remote Method Invocation,RMI)服务。本文将深入探讨"spring rmi 改造"这一主题,主要关注如何在原有...

    Spring 实现远程访问详解——httpinvoker

    上文我们利用Spring rmi实现了Spring的远程访问(Spring 实现远程访问详解——rmi),本文主要讲解利用HttpInvoke实现远程访问。 Spring httpInvoker使用标准java序列化机制,通过Http暴露业务服务。如果你的参数和...

    mina2 实例程序(socket通讯调用远程方法)

    在当今的分布式系统中,远程方法调用(Remote Method Invocation,RMI)是常见的通信方式之一,它允许程序在不同的网络节点间透明地调用方法,极大地简化了分布式应用的开发。Apache Mina作为一个高效的网络通信框架...

    一个可以运行的RMI例子

    远程方法调用(Remote Method Invocation,RMI)是Java平台上的一个重要特性,它允许Java程序在不同的Java虚拟机(JVM)之间进行分布式计算。在这个"一个可以运行的RMI例子"中,我们可以深入理解RMI的工作原理以及...

    dubbo入门示例,普通Java进程,不使用spring boot cloud

    2. **调用服务**:在业务逻辑中,直接调用接口方法进行远程调用。 **运行与测试** 1. **启动注册中心**:可以使用ZooKeeper作为注册中心,启动ZooKeeper服务器。 2. **启动服务提供者**:运行提供者应用,服务会被...

    springboot-httpinvoker-demo.zip

    而在微服务架构中,服务间通信是必不可少的一部分,HTTP Invoker作为Spring框架的一个组件,为Spring Boot应用提供了一种轻量级的远程方法调用(RMI)方案。本篇将深入探讨SpringBoot HTTP Invoker的原理、配置以及...

    springboot+dubbo

    - **服务治理**:Dubbo 提供服务注册与发现、远程调用、负载均衡、容错、服务路由、服务分组、服务降级、服务限流等功能,帮助开发者构建高可用、高性能的服务网格。 - **Zookeeper 集成**:作为默认的注册中心,...

    spring-rpc-case

    通过客户端,开发者可以像调用本地方法一样调用远程服务,Spring框架会处理网络传输和序列化等细节。 2. **spring-rpc-service**:这部分可能对应Spring RPC的服务端实现,服务端包含实际提供服务的业务逻辑。...

    pro spring 4

    - **远程调用**:Spring支持多种远程调用协议,如RMI、HTTP Invoker等,方便不同应用之间的交互。 - **脚本支持**:Spring支持脚本语言(如Groovy),可以通过脚本来扩展应用程序的功能。 - **测试**:Spring提供了...

    springboot-dubbo整合框架2

    在本项目"springboot-dubbo整合框架2"中,我们主要关注的是如何将流行的Java微服务框架Spring Boot与阿里巴巴的高性能远程服务调用框架Dubbo相结合,构建一个强大的分布式服务系统。Spring Boot以其简洁的配置和快速...

    spring学习笔记

    Spring支持RMI、HTTP、Hessian和 Burlap等协议的远程服务调用,使分布式系统间的通信变得更加简单。 **7. Spring MVC** Spring MVC是Spring提供的Web层框架,用于构建RESTful风格的Web应用。它简化了MVC模式的实现...

    第一部分:Spring框架概述1

    Spring支持通过RMI(远程方法调用)和Web服务进行远程访问,允许分布式系统间的交互,增强了系统的可扩展性。 8. **测试支持** Spring提供了强大的测试框架,包括单元测试和集成测试的支持。开发者可以利用Mock...

    spring framework中文开发参考手册

    在服务调用上,Spring的Remoting模块支持远程过程调用(RPC),如RMI、Hessian、 Burlap等协议,使得分布式系统间的通信更为便捷。 最后,Spring Boot和Spring Cloud的出现简化了Spring应用的开发和部署,提供了...

    springmvc+springboot+dubbo开发文档

    Spring MVC、Spring Boot和Dubbo是Java开发领域中极为重要的技术框架,它们分别在Web应用、微服务管理和分布式服务调用方面发挥着关键作用。这篇文档将深入探讨这三者的核心概念、工作原理以及如何结合使用。 **...

Global site tag (gtag.js) - Google Analytics