spring boot集成dubbo
阿新 • • 發佈:2017-11-30
最新版 新版 pub content protoc ice import fig ref
spring-boot-start-dubbo
spring-boot-start-dubbo,讓你可以使用spring-boot的方式開發dubbo程序。使dubbo開發變得如此簡單。
如何使用
1. clone 代碼(可選,已經發布到中央倉庫,可以直接依賴中央倉庫的穩定版本)
git clone [email protected]:teaey/spring-boot-starter-dubbo.git
2. 編譯安裝(可選)
cd spring-boot-starter-dubbo
mvn clean install
3. 修改maven配置文件(可以參考樣例spring-boot-starter-dubbo-sample)
- 在Spring Boot項目的pom.xml增加parent:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.6.RELEASE</version>
</parent>
- 在Spring Boot項目的pom.xml中添加以下依賴:
根據實際情況依賴最新版本
<dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>1.0.0</version> </dependency>
- maven插件用於打包成可執行的uber-jar文件,添加以下插件(這裏一定要加載需要打包成jar的mudule的pom中)
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.3.6.RELEASE</version>
</plugin>
4. 發布服務
服務接口:
package cn.teaey.sprintboot.test; public interface EchoService { String echo(String str); }
在application.properties添加Dubbo的版本信息和客戶端超時信息,如下:
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://192.168.99.100:32770
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=cn.teaey.sprintboot.test
在Spring Application的application.properties中添加spring.dubbo.scan即可支持Dubbo服務發布,其中scan表示要掃描的package目錄
- spring boot啟動
package cn.teaey.sprintboot.test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Server {
public static void main(String[] args) {
SpringApplication.run(Server.class, args);
}
}
- 編寫你的Dubbo服務,只需要添加要發布的服務實現上添加 @Service ,如下
package cn.teaey.sprintboot.test;
import com.alibaba.dubbo.config.annotation.Service;
@Service(version = "1.0.0")
public class EchoServerImpl implements EchoService {
public String echo(String str) {
System.out.println(str);
return str;
}
}
5. 消費Dubbo服務
- 在application.properties添加Dubbo的版本信息和客戶端超時信息,如下:
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://192.168.99.100:32770
spring.dubbo.scan=cn.teaey.sprintboot.test
在Spring Application的application.properties中添加spring.dubbo.scan即可支持Dubbo服務發布,其中scan表示要掃描的package目錄
- spring boot啟動
package cn.teaey.sprintboot.test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class Client {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(Client.class, args);
AbcService bean = run.getBean(AbcService.class);
System.out.println(bean.echoService.echo("abccc"));
}
}
- 引用Dubbo服務,只需要添加要發布的服務實現上添加 @Reference ,如下:
package cn.teaey.sprintboot.test;
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Component;
@Component
public class AbcService {
@Reference(version = "1.0.0")
public EchoService echoService;
}
6. 打包
可以直接執行Server或者Client啟動
可以通過mvn clean package 打包成可執行的uber-jar文件
spring boot集成dubbo