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

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

项目结构

Spring boot和dubbo整合部署到tomcat——基于注解方式_第1张图片
分为三个模块,consumer(消费者)、interface(消费者和提供者依赖的共同接口)、provider(提供者),这也是咱们项目中通常的模块分隔方式。
这是在上一篇Spring Boot项目部署到Eclipse下的tomcat的代码基础上改造而成。

  • 添加dubbo依赖

提供者、消费者pom中添加

<dependency>
    <groupId>io.dubbo.springbootgroupId>
    <artifactId>spring-boot-starter-dubboartifactId>
    <version>1.0.0version>
dependency>

提供者

  • 代码结构

Spring boot和dubbo整合部署到tomcat——基于注解方式_第2张图片

  • 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=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com.example

消费者

  • 代码结构

Spring boot和dubbo整合部署到tomcat——基于注解方式_第3张图片

  • 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=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.scan=com.example

接口

  • 代码结构

Spring boot和dubbo整合部署到tomcat——基于注解方式_第4张图片

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

public interface UserService {
    public String getUserName();
}

注意

注意以下配置,否则项目可能run不起来。我是eclipse下的配置:
Spring boot和dubbo整合部署到tomcat——基于注解方式_第5张图片
Spring boot和dubbo整合部署到tomcat——基于注解方式_第6张图片
Spring boot和dubbo整合部署到tomcat——基于注解方式_第7张图片
最后发布到eclipse下的tomcat,start!

附录

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

你可能感兴趣的:(spring)