美文网首页
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