SpringBoot与Dubbo整合-application.properties和注解的方式

本文详细介绍了如何在SpringBoot环境下整合Dubbo框架,包括环境搭建、项目结构设计、服务提供者与消费者的实现,以及通过Zookeeper进行服务注册与发现的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:

eclipse3.7

tomcat8.5

jdk1.8

zookeeper-3.4.10

dubbo-admin-2.5.9

 

duboo下载地址

https://github.com/apache/incubator-dubbo/releases

启动D:\apache\zookeeper-3.4.10\bin    ->  zkServer.cmd

dubbo下载后,进入admin目录用maven编译,将dubbo-admin-2.5.9放入TOMCAT当中并启动TOMCAT

启动后验证是否成功

http://localhost:8080/dubbo-admin-2.5.9/

账号root 密码root

 

本文是分成三个项目在开发,目的是可以分开发布,如果放在一个项目当中感觉耦合性太强.当然在实现在也可以放在一个项目当中分三个modle实现

导入dubbo-starter,在application.properties配置属性,使用@Service注解来暴露服务,使用@Reference来引用服务。具体可参考 Dubbo整合SpringBoot,这里截取部分代码方便理解。
属性在application.properties中配置
服务提供方使用@Service注解暴露服务
服务消费方使用@Reference注解来引用服务
项目分为api,Producer(生产者),Consumer(消费者)

 

api项目

接口定义
 

package com.example.service;

public interface TestService {
    String sayHello(String name);
}

Producer项目
 

application.properties

server.port=8011
#producer
dubbo.application.name=dubbo-provider
#\u6CE8\u518C\u4E2D\u5FC3\u7684\u534F\u8BAE\u548C\u5730\u5740
dubbo.registry.protocol=zookeeper
dubbo.registry.address=127.0.0.1:2181

#\u901A\u4FE1\u89C4\u5219\uFF08\u901A\u4FE1\u534F\u8BAE\u548C\u63A5\u53E3\uFF09
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

#\u8FDE\u63A5\u76D1\u63A7\u4E2D\u5FC3
dubbo.monitor.protocol=registry
 

接口的实现类

package com.example.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.example.service.TestService;

@Service(version = "1.0.0")
public class TestServiceImpl implements TestService {
    @Override
    public String sayHello(String name) {

        return "Hello " + name + "!";
    }
}

 DubboProducerApplication

的启动类上添加

@EnableDubbo

已扫描服务,添加到dubbo当中注册

 

Consumer项目

maven

application.properties

server.port=8012
dubbo.application.name=dubbo-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.monitor.protocol=registry

TestController消费服务

package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.dubbo.config.annotation.Reference;
import com.example.service.TestService;


/**
 * Created by chenqimiao on 17/3/24.
 */
@Controller
public class TestController {

    @Reference(version = "1.0.0")
    private TestService testService;
    
    @RequestMapping(value = "/sayHello" ,produces = "application/json;charset=utf-8")
    @ResponseBody
    public String test(){
        return testService.sayHello("Chenqimiao");
    }
    
}

DubboConsumerApplication的启动类上添加

@EnableDubbo

运行DubboConsumerApplication

 

测试

http://localhost:8012/sayHello

 

github:

https://github.com/qingxin133/springboot-dubbo1 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值