您的位置:首页 > 运维架构 > Tomcat

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

2017-11-03 14:05 681 查看
之前写过一篇类似的整合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=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


消费者

代码结构



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


接口

代码结构



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

public interface UserService {
public String getUserName();
}


注意

注意以下配置,否则项目可能run不起来。我是eclipse下的配置:







最后发布到eclipse下的tomcat,start!

附录

项目地址:https://gitee.com/earthhour/spring-boot-demo.git
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring-boot dubbo tomcat