Spring boot和dubbo整合部署到tomcat——基于注解方式

来源:互联网 发布:java双向链表 编辑:程序博客网 时间:2024/05/16 19:38

之前写过一篇类似的整合Spring boot和dubbo整合——基于传统方式。这种方式是依赖于dubbo xml配置文件的,而且不能部署到tomcat启动。
今天这篇使用了spring-boot-starter-dubbo包,通过注解方式声明生产者和消费者,抛弃了dubbo xml配置文件,而且是部署到tomcat下启动的。下面就来看看怎么实现的吧:

项目结构

这里写图片描述
分为三个模块,consumer(消费者)、interface(消费者和提供者依赖的共同接口)、provider(提供者),这也是咱们项目中通常的模块分隔方式。
这是在上一篇Spring Boot项目部署到Eclipse下的tomcat的代码基础上改造而成。

  • 添加dubbo依赖

提供者、消费者pom中添加

<dependency>    <groupId>io.dubbo.springboot</groupId>    <artifactId>spring-boot-starter-dubbo</artifactId>    <version>1.0.0</version></dependency>

提供者

  • 代码结构

这里写图片描述

  • UserServiceImpl
    实现了UserService接口,通过@Service(version="1.0.0")声明自己是服务提供者
import com.alibaba.dubbo.config.annotation.Service;@Service(version="1.0.0")public class UserServiceImpl implements UserService {    @Override    public String getUserName() {        System.out.println("Being invoked");          return "test user";     }}
SpringBootStartApplication和ControllerDemo与前一篇的代码一样,没改变。
  • 配置文件application.properties
spring.dubbo.application.name=providerspring.dubbo.registry.address=zookeeper://127.0.0.1:2181spring.dubbo.protocol.name=dubbospring.dubbo.protocol.port=20880spring.dubbo.scan=com.example

消费者

  • 代码结构

这里写图片描述

  • Consumer
    通过@Reference(version = "1.0.0")声明,注入提供者服务。
import com.alibaba.dubbo.config.annotation.Reference;@RestController  public class Consumer {      @Reference(version = "1.0.0")    private UserService userService;    @RequestMapping("/")      String consume() {         System.out.println("++++++++++++++++++++++++++");        return userService.getUserName();      }  }
SpringBootStartApplication同提供者。
  • 配置文件application.properties
spring.dubbo.application.name=consumerspring.dubbo.registry.address=zookeeper://127.0.0.1:2181spring.dubbo.scan=com.example

接口

  • 代码结构

这里写图片描述

定义了一个接口,供提供者、消费者依赖。

public interface UserService {    public String getUserName();}

注意

注意以下配置,否则项目可能run不起来。我是eclipse下的配置:
这里写图片描述
这里写图片描述
这里写图片描述
最后发布到eclipse下的tomcat,start!

附录

项目地址:https://gitee.com/earthhour/spring-boot-demo.git

原创粉丝点击