springboot整合dubbo-start
2017-07-12 14:49
429 查看
1、dubbo分布式框架的由provider,customer和api接口三部分组成;所以标准的做法是创建三个工程分别对应provider,customer,和api;
Api项目
由于api只是定义一些需要实现的功能,所以这一个项目只需要定义一些接口就行,在例子中,我们定义了一个ExampleService;
Provider项目
provider项目的功能是实现Api中所定义的各种接口,在github上teaey大神,开源了springboot框架下的dubbo-starter项目,具体地址:
https://github.com/teaey/spring-boot-starter-dubbo,dubbo-starter中引用的dubbo是2.5.4版本的,所以在使用dubbo-starter项目之前,可能需要先将dubbo项目从github上下载过来然后maven编译下,下载地址如下: https://github.com/alibaba/dubbo
编译好之后,会得到dubbo-dubbo-2.5.4-SNAPSHOT的一个jar,添加到本地maven仓库中就行,然后在provider项目中引用dubbo-starter,整个pom如下:
然后在application.properties中声明一些配置如下:
接着开始实现api中所定义的接口:
在这里@Service(version="1.0.0")标签的作用声明服务提供者的版本;
customer项目中,是使用provider项目中实现的接口,其pom的引用跟provider是一样的。
使用provider提供的服务时,加入@Reference(version="1.0.0")标签,正如前面Service标签提供的版本号
@Component
public class SayHiService {
@Reference(version="1.0.0")
ExampleService pSayHiService;
public String sayHi(){
return pSayHiService.SayHi("consumer");
}
}这样就可以引用provider提供的服务了;
PS:因为dubbo项目是注册在zookeeper上的,所以项目启动之前需要先打开zookeeper;
Api项目
由于api只是定义一些需要实现的功能,所以这一个项目只需要定义一些接口就行,在例子中,我们定义了一个ExampleService;
public interface ExampleService extends Serializable{ public String SayHi(String name); }
Provider项目
provider项目的功能是实现Api中所定义的各种接口,在github上teaey大神,开源了springboot框架下的dubbo-starter项目,具体地址:
https://github.com/teaey/spring-boot-starter-dubbo,dubbo-starter中引用的dubbo是2.5.4版本的,所以在使用dubbo-starter项目之前,可能需要先将dubbo项目从github上下载过来然后maven编译下,下载地址如下: https://github.com/alibaba/dubbo
编译好之后,会得到dubbo-dubbo-2.5.4-SNAPSHOT的一个jar,添加到本地maven仓库中就行,然后在provider项目中引用dubbo-starter,整个pom如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.hp</groupId> <artifactId>dubbo-provider</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>dubbo-provider</name> <description>dubbodemo</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <dependencies> <dependency> <groupId>com.hp</groupId> <artifactId>dubbo-api</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>1.0.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.3.6.RELEASE</version> </plugin> </plugins> </build> </project>
然后在application.properties中声明一些配置如下:
spring.dubbo.application.name=provider spring.dubbo.registry.address=zookeeper://172.16.1.55:2181 spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=20880 spring.dubbo.scan=com.phu.DubboService spring.dubbo.module.default=false
接着开始实现api中所定义的接口:
@Service(version = "1.0.0") public class ExampleServiceImpl implements ExampleService{ /** * */ private static final long serialVersionUID = -6591900875272367270L; @Override public String SayHi(String name) { // TODO Auto-generated method stub return "hi,provider:"+name; } }
在这里@Service(version="1.0.0")标签的作用声明服务提供者的版本;
customer项目中,是使用provider项目中实现的接口,其pom的引用跟provider是一样的。
使用provider提供的服务时,加入@Reference(version="1.0.0")标签,正如前面Service标签提供的版本号
@Component
public class SayHiService {
@Reference(version="1.0.0")
ExampleService pSayHiService;
public String sayHi(){
return pSayHiService.SayHi("consumer");
}
}这样就可以引用provider提供的服务了;
PS:因为dubbo项目是注册在zookeeper上的,所以项目启动之前需要先打开zookeeper;
相关文章推荐
- springboot+mybatis+dubbo整合
- spring boot 学习笔记(3) 整合dubbo
- spring-boot整合dubbo:Spring-boot-dubbo-starter
- 【转】SpringBoot学习笔记(7) SpringBoot整合Dubbo(使用yml配置)
- springboot整合dubbo
- Spring Boot整合Dubbo框架demo
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
- Spring boot 整合Dubbo
- springboot整合dubbo
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
- Spring Boot 构建应用——整合 Dubbo 框架
- springboot整合dubbo
- spring boot整合dubbo
- Spring Boot和Dubbo整合
- SpringBoot整合Dubbo报错: java.lang.ClassCastException
- Spring Boot整合Dubbo框架demo
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
- SpringBoot学习笔记(7) SpringBoot整合Dubbo(使用yml配置)
- Spring Boot整合Dubbo运行
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例