美文网首页
RMI框架搭建

RMI框架搭建

作者: 内卷星球 | 来源:发表于2018-03-25 06:12 被阅读0次

创建子模块

一个作为公有接口模块(Common),一个作为接口实现模块(Component),一个作为引用接口模块(ApiCenter)
Component 引入Common 去实现接口方法
ApiCenter 引入Common 去调用接口方法

公有模块

<artifactId>Common</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>

只需要创建接口文件即可,配置文件resource以及webapp都可以删除

接口实现模块

<artifactId>Component</artifactId>
<packaging>war</packaging>

在接口实现模块的pom.xml,需要引入对接口模块的依赖

<dependency>
    <groupId>**********</groupId>
    <artifactId>Common</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

新建接口实现类BaseService(自动扫描)

@Service
public class BaseService implements CommonInterface {

    public String getName() {
        return "success";
    }
}

Spring Mvc配置文件中引入rmi配置文件(新建rmi配置文件)

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
       
# 此时这个/baseService即为之后调用接口的方法
    <bean name="/baseService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
        <property name="service" ref="baseService"/>
        <property name="serviceInterface" value="***.***.***.CommonInterface"/>#指的是Common模块的接口
    </bean>
</beans>

引用接口模块

<artifactId>ApiCenter</artifactId>
<packaging>war</packaging>

在接口实现模块的pom.xml,需要引入对接口模块的依赖

<dependency>
    <groupId>**********</groupId>
    <artifactId>Common</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

Spring Mvc配置文件中引入rmi配置文件(新建rmi配置文件)

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
       
<bean id="baseService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
        <property name="serviceInterface" value="***.***.***.CommonInterface"/>
        <property name="serviceUrl" value="${rmi.server.host}/baseService"/>
    </bean>
</beans>

rmi.server.host应当配置在配置文件里头

# RMI 远程调用服务接口
rmi.server.host=http://127.0.0.1:8083/Component
# Component模块war包部署在tomcat8083端口

调用接口方法:

@Autowired
private CommonInterface commonService;
/**
 * 获取商品列表
 *
 * @param idleResModel
 * @return
 */
@GetMapping("/list")
public Map<String, Object> getIdleList(@Valid IdleResModel idleResModel) {
    Map<String, Object> resultMap = new HashMap<>();
    resultMap.put("test", commonService.getName());
    return resultMap;
}

相关文章

网友评论

      本文标题:RMI框架搭建

      本文链接:https://www.haomeiwen.com/subject/vjdfqftx.html