直连方式 dubbo

前置要求: 统一jdk版本,web.xml的版本必须是3.0以上,实体bean类必须实现序列化接口,dubbo只支持序列化的bean对象

测试要求: 必须先启动提供者服务,在启动消费者服务

 

 

 

目录结构:首先创建两个web工程,一个提供者,一个消费者,然后创建一个普通的java工程intaerface

 

0|1inferface工程:

目录结构:

1、创建实体bean,编写service接口

package com.GLH.dubbo.model;

import java.io.Serializable;

public class User implements Serializable {

    private Integer id;

    private String name;

    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
}

 

package com.GLH.dubbo.service;

import com.GLH.dubbo.model.User;



public interface UserService {
    /**
     * @return 放回一个字符串
     *
     *
     * */
    String sayHello();


    /**
     * @param id    根据这个值查询对象
    * @return 根据id返回一个user对象
     *
    * */
    User queryUserById(int id);

}

 

2、 打包到本地maven仓库

 

0|2提供者peovider:

 

目录结构

1、编写maven依赖:

导入interface工程的依赖

导入dubbo依赖

导入spring和springmvc依赖

2、编写service实现类

 

可以使用注解创建bean,扫描包,或者使用配置文件创建bean

 

package com.GLH.dubbo.service.impl;

import com.GLH.dubbo.model.User;
import com.GLH.dubbo.service.UserService;



public class UserServiceImpl implements UserService {
    @Override
    public String sayHello() {
        return "hello dubbo";
    }

    @Override
    public User queryUserById(int id) {
        User user = new User();
        user.setId(id);
        user.setName("zhang"+id);
        user.setAge(10+id);
        return user;
    }
}

3、编写dubbo配置文件:

存放在类路径下

编写内容:

1、声明dubbo服务提供者的名称,保证其唯一性

2、指定协议和端口,推荐使用dubbo协议端口默认为208880

3、创建实体bean交给spring的ioc容器管理

 

4、暴露服务接口

 

属性解析:

interface 依赖接口工程的接口类路径

ref 提供者工程中的实现类bean对象

registry 使用直连的方式连接,值默认为N/A

 

 

4、编写web.xml

1、编写context-param 加载dubbo的配置文件

2、编写监听器

 

 

0|3消费者工程consumer:

1、编写maven依赖:

导入interface工程的依赖

导入dubbo依赖

导入spring和springmvc依赖

2、编写webcontroller类:

1、调用提供者接口实现类,在webcontroller类中添加userservice属性并添加自动注入注解

2、编写controller平时编写的业务

3、编写springmvc配置文件

1、配置包扫描

2、配置视图解析器

4、编写dubbo配置文件

1、声明服务消费者的名称,保证他的唯一性

2、引用远程调用接口

 

属性解析:

id:为提供者工程spring容器管理的bean

interface:接口工程的接口类路径

registy: 直连方式

url: 调用远程接口服务的url地址

 

 

5、编写web.xml配置文件

1、编写dispatchservlet

这里初始化加载文件的时候,要加载dubbo的配置文件和springmvc的配置文件

 

 

 

 

 

0|4测试

编写两个tomcat配置启动,注意端口号不能重复

http端口和jmx的端口不能重复

 

1、启动提供者服务

2、启动消费者服务

3、测试业务是否能够正常访问消费者服务的方法

 

 

 

1|03、ssm使用注册中心-Zookeeper

 

项目结构大致一样

dubbo的配置文件做出一点改变就行

提供者:

 

 

<!--    声明服务提供者名称,保证其唯一性-->
        <dubbo:application name="zk-provider"/>
<!--配置服务端口-->
        <dubbo:protocol name="dubbo" port="20880"/>
<!--    指定注册中心-->
        <dubbo:registry address="zookeeper://192.168.2.10:2181" check="false"/>
<!--    暴露服务-->
        <dubbo:service interface="com.GLH.dubbo.service.UserService" ref="userService"/>

<!--    创建实体bean-->
        <bean id="userService" class="com.GLH.dubbo.service.impl.UserServiceImpl"/>

消费者

<!--    声明服务消费者名称-->
    <dubbo:application name="zk-consumer"/>
<!--指定注册中心-->
    <dubbo:registry address="zookeeper://192.168.2.10:2181"/>
<!--    引用远程接口服务-->
    <dubbo:reference  id="userService" interface="com.GLH.dubbo.service.UserService"/>

 


__EOF__

本文作者无忧
本文链接https://www.cnblogs.com/weizw/p/16164792.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   无忧  阅读(70)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示