Springboot集成dubbo

Springboot集成dubbo

Springboot集成dubbo框架

时下Springboot框架已经成为一种主流,目前新项目启动整理一份集成dubbo框架的文档,以做记录。

一.pom文件核心配置

  <!-- dubbo -->
  <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>dubbo</artifactId>
       <version>2.6.0</version>
       <exclusions>
           <exclusion>
               <artifactId>spring</artifactId>
               <groupId>org.springframework</groupId>
           </exclusion>
       </exclusions>
   </dependency>
   <!-- zk -->
  <dependency>
  	<groupId>org.apache.zookeeper</groupId>
  	<artifactId>zookeeper</artifactId>
  	<version>3.4.13</version>
  	<exclusions>
  		<exclusion>
  			<groupId>org.slf4j</groupId>
  			<artifactId>slf4j-log4j12</artifactId>
  		</exclusion>
  		<exclusion>
  			<groupId>log4j</groupId>
  			<artifactId>log4j</artifactId>
  		</exclusion>
  	</exclusions>
  </dependency>
  <!-- zkclient -->
  <dependency>
       <groupId>com.github.sgroschupf</groupId>
       <artifactId>zkclient</artifactId>
       <version>0.1</version>
   </dependency>
   <!-- kryo -->
   <dependency>
      <groupId>de.javakaffee</groupId>
      <artifactId>kryo-serializers</artifactId>
      <version>0.38</version>
  </dependency>

-特别注意这里多了个kryo-serializers配置,是针对dubbo序列化的优化机制

二、启动扫描配置

@SpringBootApplication
@EnableDubbo(scanBasePackages = “com.example”)
public class DemoApplication {

  public static void main(String[] args) {
  	SpringApplication.run(DemoApplication.class, args);
  }	

}

  • 特别注意黄色部分此处启用dubbo扫描配置功能
  • scanBasePackages 表示要扫描项目目录

三、src/main/resources新增配置dubbo.properties

#应用名称
dubbo.application.name=dubbodemo
#注册中心协议
dubbo.registry.protocol=zookeeper
#注册中心地址,如果是集群127.0.0.1:2181,127.0.0.1:2181,127.0.0.1:2182
dubbo.registry.address=zookeeper://127.0.0.1:2181
#使用协议
dubbo.protocol.name=dubbo
#服务暴露端口
dubbo.protocol.port=20880
#服务序列化机制
dubbo.protocol.serialization=kryo
#服务启动时不启时以来检查
dubbo.consumer.check=false

四、代码实例

4.1生产者类

  • 首先定义一个接口

package com.example.dubbo;

public interface HelloService {

public void sayhello(String name);

}

  • 定义一个实现类

package com.example.demo.service;

import org.springframework.stereotype.Component;

import com.alibaba.dubbo.config.annotation.Service;
import com.example.dubbo.HelloService;

@Component(“helloServiceImpl”)
@Service(interfaceName=“com.example.dubbo.HelloService”)
public class HelloServiceImpl implements HelloService{

  @Override
  public void sayhello(String name) {
  	System.out.println("hello "+name+"!");
  }

}

  1. @Component 定义一个spring bean
  2. @Service 定义一个dubbo bean 特别注意service注解。
  3. interfaceName参数指明接口方便dubbo暴露这个接口。
  4. 如果HelloService当前项目需要使用直接使用@autowired,@Resource

4.2消费者类

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

import com.alibaba.dubbo.config.annotation.Reference;
import com.example.dubbo.HelloService;

@Controller
public class HelloController {

@Reference
private HelloService helloService;

@RequestMapping("/index")
@ResponseBody
public String index() {
  	  helloService.sayhello("zhuj");
      return "Greetings from Spring Boot!";
}

}

友情链接: dubbo官方网站说明文档

最后祝大家生活愉快!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值