dubbo2.7.5整合spirngMVC入门demo(Apache)

  • 阿里的dubbo在放弃维护一段时间后,又悄悄的开始维护了,并且现在进入apache孵化。由于中途一段时间由dangdang维护,改名dubbox,而且更新到了2.8.5的版本,所以在使用上可能有一定差异。所以在此写出duboo2.7.5的入门demo。与大家共同学习探讨
  • 这篇文章默认你已经会springMVCmaven

一、注册中心

1.这里duboo的使用是要配合注册中心的,我这里推荐zookeeper
下载示意
2.根据图片提示进行下载
3.解压后进入bin目录
在这里插入图片描述
4.直接./zkServer.sh start启动即可
– 其默认端口为2181

二、创建三个项目(api,provider,consumer)

在这里插入图片描述

  1. apijar包,提供接口供providerconsumer使用
    api里面只有一个接口
    在这里插入图片描述
    pom.xml
    其实api并不需要这些jar包,这里导入是因为consumerprovider都需要,偷个懒
<dependencies>
        <!--servlet-api-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
        </dependency>
        <!--dubbo-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.5</version>
            <!--这里我是用的spring5.2.0,所以排除这个包防止jar包冲突-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--springMVC包,整合必须-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
        <!--dubbo整合spring需要的客户端-->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.0.1</version>
        </dependency>

    </dependencies>
  1. consumer(消费者)为war包,并在pom中引用api
    pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <parent>
        <artifactId>dubboTest</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>

    <name>comsumer</name>
    <artifactId>comsumer</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>

这里的consumer类只有一个controller
在这里插入图片描述
注意这里的注解不要导错包
Spring.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://dubbo.apache.org/schema/dubbo"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
	<!--开启扫描包(扫描到你的controller即可)-->
    <context:component-scan base-package="com.az"/>
    <mvc:annotation-driven/>
	<!--name中的内容没有特殊含义,起个名字-->
    <dubbo:application name="provider"/>
    <!--protocol中内容表示用的注册中心为zookeeper,address填写你的zookeeper地址-->
    <dubbo:registry protocol="zookeeper" address="192.168.200.129:2181"/>
    <!--duboo的扫描包,扫描到你的referen注解即可-->
    <dubbo:annotation package="com.az"/>

</beans>

web.xml中将dispatcherservlet配置好即可

  1. provider(供应者)为war包,在pom中引用api
    pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--8-03-28 08:04:16Z reinhard $ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <parent>
        <artifactId>dubboTest</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>

    <name>provider</name>

    <dependencies>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <artifactId>provider</artifactId>


</project>

provider中只有一个api的实现类,并加上@Service注解
在这里插入图片描述
applicationContext.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://dubbo.apache.org/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">


    <dubbo:application name="provider"/>
    <dubbo:registry protocol="zookeeper" address="192.168.200.129:2181"/>
    <dubbo:annotation package="com.az.imp"/>

</beans>

web.xml内容


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!--通过这个监听器加载配置文件的内容即可-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/applicationContext.xml</param-value>
    </context-param>

</web-app>
        
三、开始测试

1.为cosumerprovider各配置一个tomcat启动
在这里插入图片描述
2. 根据你的consumermapping进行测试
在这里插入图片描述
到这里就已经测试成功了,
返回两个问好是因为没有进行编码处理
consumer中进行编码处理即可

相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

今晚打老虎AZ

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值