美文网首页
dubbo入门-dubbo和spring整合

dubbo入门-dubbo和spring整合

作者: 御风_2fd9 | 来源:发表于2019-03-09 17:43 被阅读0次

    创建一个maven的工程dubbo-demo

    工程结构.png

    包含服务接口模块,服务接口模块:dubbo-demo-api,服务消费者模块:dubbo-demo-consumer,服务生产者模块:dubbo-demo-provider

    1.服务接口模块:dubbo-demo-api

    • 创建接口DemoService


      DemoService.png
    • pom文件
      删除parent节点
      并创建artifactId,以对外提供依赖
        <groupId>com.imooc</groupId>
        <artifactId>dubbo-demo-api</artifactId>
        <version>1.0-SNAPSHOT</version>
    

    2.服务生产者模块:dubbo-demo-provider

    • 创建Provider启动类
    package com.alibaba.dubbo.demo.provider;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    public class Provider {
        public static void main(String[] args) throws Exception {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
                    new String[] {"dubbo-provider.xml"});
            context.start();
            System.in.read(); // press any key to exit
        }
    }
    
    • 创建DemoServiceImpl实现类
    package com.alibaba.dubbo.demo.provider;
    import com.alibaba.dubbo.demo.DemoService;
    public class DemoServiceImpl implements DemoService {
        public String sayHello(String name) {
            return "Hello " + name;
        }
    }
    
    • Resources目录下创建dubbo-provider.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
        <dubbo:application name="demo-provider"/>
        <!--广播式-->
        <dubbo:registry address="multicast://224.5.6.7:1234"/>
        <dubbo:protocol name="dubbo" port="20880"/>
        <dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService"/>
        <bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl"/>
    </beans>
    
    • 添加依赖
        <dependencies>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.6.0</version>
            </dependency>
            <dependency>
                <groupId>com.imooc</groupId>
                <artifactId>dubbo-demo-api</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
        </dependencies>
    

    3.服务消费者模块:dubbo-demo-consumer

    • 创建Consumer 启动类
    import com.alibaba.dubbo.demo.DemoService;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    public class Consumer {
        public static void main(String[] args) throws Exception {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
                    new String[]{"dubbo-consumer.xml"});
            context.start();
            DemoService demoService = (DemoService) context.getBean("demoService"); // obtain proxy object for remote invocation
            String hello = demoService.sayHello("fanfan"); // execute remote invocation
            System.out.println(hello); // show the result
        }
    }
    
    • 创建dubbo-consumer.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
        <dubbo:application name="demo-consumer"/>
        <!--广播式-->
        <dubbo:registry address="multicast://224.5.6.7:1234"/>
        <dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService"/>
    </beans>
    

    启动生产者,启动消费者

    控制台输出:Hello world


    输出效果.png

    本地调试还可采用直连的方式

    dubbo-provider.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
        <dubbo:application name="demo-provider"/>
        <!--广播式-->
    <!--
        <dubbo:registry address="multicast://224.5.6.7:1234"/>
    -->
        <!--直连式-->
        <dubbo:registry register="false"/>
        <dubbo:protocol name="dubbo" port="20880"/>
        <dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService"/>
        <bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl"/>
    </beans>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    

    dubbo-consumer.xml

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
        <dubbo:application name="demo-consumer"/>
        <!--广播式-->
       <!-- <dubbo:registry address="multicast://224.5.6.7:1234"/>
        <dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService"/>-->
        <!--直连式-->
        <dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" url="127.0.0.1:20880"/>
    </beans>
    

    参考https://juejin.im/post/5a37600b6fb9a0450671b86a

    相关文章

      网友评论

          本文标题:dubbo入门-dubbo和spring整合

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