dubbo整合springboot最詳細入門教程
說明
目前網際網路公司,大部分專案都是基於分散式,一個專案被拆分成幾個小專案,這些小專案會分別部署在不同的計算機上面,這個叫做微服務。當一臺計算機的程式需要呼叫另一臺計算機程式碼的時候,就涉及遠端呼叫。此時dubbo就粉末登場了。
搭建工程
idea新建工程後,刪除src資料夾,然後在gradle檔案中輸入
buildscript {
repositories {
maven { url '' }
mavenCentral()
}
dependencies {
classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.21.RELEASE'
}
}
plugins {
id 'java'
}
apply plugin: 'org.springframework.boot'
apply plugin: 'war'
group 'com.demoMuty'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
maven { url '' }
mavenCentral()
}
dependencies {
compile 'org.springframework.boot:spring-boot-starter-mail'
compile 'org.springframework.boot:spring-boot-starter-thymeleaf'
compile 'org.springframework.boot:spring-boot-starter-web'
compile 'org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.4'
compile 'com.alibaba.boot:dubbo-spring-boot-starter:0.1.0'
compile 'com.101tec:zkclient:0.10'
// developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtime 'mysql:mysql-connector-java'
compile("com.baomidou:mybatis-plus-boot-starter:3.1.0")
compile("com.baomidou:mybatis-plus-generator:3.1.1")
compileOnly 'org.projectlombok:lombok'
testCompile 'org.springframework.boot:spring-boot-starter-test'
}
如圖所示
boolean作為父工程,然後再見三個模組
booleanone作為父模組 booleanteo作為服務者模組 booleanthree作為消費者模組
新增dubbo.xml
然後在每個模組新建com.test包,在包下新建啟動類
@SpringBootApplication
public class BaseApplication extends SpringBootServletInitializer {
}
然後在每個模組的gradle檔案中引入上面的依賴,然後在消費者模組和生產者模組的依賴中加入父模組依賴,如圖
然後在booleantwo的生產者模組的resource資原始檔中加入dubbo檔案
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=""
xmlns:xsi="" xmlns:dubbo=""
xsi:schemaLocation="
/spring-beans.xsd
/dubbo.xsd
">
<!-- 提供方應用資訊,用於計算依賴關係 -->
<dubbo:application name="hello-world-app"/>
<!-- 使用multicast廣播註冊中心暴露服務地址 -->
<dubbo:registry address="zookeeper://localhost:2181"/>
<!-- 用dubbo協議在20880埠暴露服務 -->
<dubbo:protocol name="dubbo" port="20880"/>
<!-- 宣告需要暴露的服務介面 -->
<dubbo:service
interface="com.test1.provider.DemoService"
ref="demoService"
group="hello-world-app"
version="1.0.0"
/>
</beans>
在啟動類中加入註解
@ImportResource({"classpath:dubbo.xml"})
然後在booleantwo的消費者模組的resource資原始檔中加入dubbo檔案
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=""
xmlns:xsi="" xmlns:dubbo=""
xsi:schemaLocation="
/spring-beans.xsd
/dubbo.xsd
">
<!-- 提供方應用資訊,用於計算依賴關係 -->
<dubbo:application name="hello-world-app"/>
<!-- 使用multicast廣播註冊中心暴露服務地址 -->
<dubbo:registry address="zookeeper://localhost:2181"/>
<!-- 生成遠端服務代理,可以和本地bean一樣使用demoService -->
<dubbo:reference
interface="com.test1.provider.DemoService"
group="hello-world-app"
version="1.0.0"
id="demoService"/>
</beans>
在啟動類中加入註解
@ImportResource({"classpath:dubbo.xml"})
編寫dubbo程式碼
在父模組中寫dubbo介面
package com.test1.provider;
/**
* @author buer
* create 2019/7/2 22:13
* description
*/
public interface DemoService {
String sayHello(String name);
}
然後在生產者模組中寫dubbo實現類
package com.test1.dubbo;
import com.test1.provider.DemoService;
import org.springframework.stereotype.Service;
/**
* @author buer
* create 2019/7/2 22:14
* description
*/
@Service("demoService")
public class DemoServiceImpl implements DemoService {
@Override
public String sayHello(String name) {
return "hello,dubbo"+name;
}
}
然後在消費者模組中寫dubbo呼叫
package com.test1.controller;
import com.test1.provider.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author boolean
* Date: 2019/7/2 19:48
* description:
*/
@RestController
public class he {
@Autowired
private DemoService demoService;
@RequestMapping("/he")
public String hello(){
return "he";
}
@RequestMapping("/chen")
public String hello1(){
return demoService.sayHello("chen");
}
}
啟動
最後新增war包
開啟zkServer.cmd
啟動資訊
如果啟動有亂碼的話
回到idea軟體 開啟tomcat的設定 找到VM options:,然後輸入
-Dfile.encoding=UTF-8
測試
程式碼地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2331/viewspace-2823211/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- dubbo入門和springboot整合dubbo小例子Spring Boot
- 超詳細教程:SpringBoot整合MybatisPlusSpring BootMyBatis
- Modelsim模擬新手入門最詳細教程
- Springboot整合MybatisPlus(超詳細)完整教程~Spring BootMyBatis
- SpringBoot 整合MyBatis-Plus3.1詳細教程Spring BootMyBatisS3
- yarn詳細入門教程Yarn
- 新手入門,webpack入門詳細教程Web
- Argo CD 詳細入門教程Go
- SpringBoot整合DubboSpring Boot
- SpringBoot整合Mybatis超詳細流程Spring BootMyBatis
- Python快速入門,附詳細影片教程Python
- Springboot入門教程Spring Boot
- springboot+dubbo+nacos入門專案Spring Boot
- 最簡單的SpringBoot整合MyBatis教程Spring BootMyBatis
- webpack4.x最詳細入門講解Web
- 埠轉發工具Rinetd詳細入門教程
- 一份詳細的asyncio入門教程
- 比官方還詳細的ByteBuddy入門教程
- springboot+dubbo+nacos整合Spring Boot
- nacos-dubbo-springboot整合Spring Boot
- SpringBoot整合Dubbo2.5.10Spring Boot
- SpringBoot註解最全詳解(整合超詳細版本)Spring Boot
- njs最詳細的入門手冊:Nginx JavaScript EngineJSNginxJavaScript
- Springboot整合Mybatis-plus(比較詳細)Spring BootMyBatis
- 【入門教程】5分鐘教你快速學會整合Java springboot ~JavaSpring Boot
- java 入門教程(非常詳細!1.6w+ 文字)Java
- SpringBoot整合RabbitMQ(一)快速入門Spring BootMQ
- SpringBoot之Dubbo和Zookeeper整合Spring Boot
- springboot整合dubbo,redis,jwt,atomikosSpring BootRedisJWT
- IDEA建立SpringBoot專案(詳細教程)IdeaSpring Boot
- SSM三大框架整合詳細教程SSM框架
- 2020年Python基礎教程,Python快速入門教程(非常詳細)Python
- Python入門課程—最詳細的Python庫介紹Python
- 最詳細的spring(IOC、AOP)教程Spring
- SpringBoot + Mybatis + Redis 整合入門專案Spring BootMyBatisRedis
- SpringBoot整合Dubbo,註冊中心nacosSpring Boot
- Springboot + Dubbo + Nacos微服務框架整合Spring Boot微服務框架
- Duboo整合SpringBoot超級詳細例子(附原始碼)Spring Boot原始碼