天天看點

springBoot整合dubbo內建項目

springBoot整合dubbo內建

傳統Spring 整合dubbo,需要繁瑣的編寫一堆堆的*.xml 配置檔案
	而springBoot整合dubbo後,不在需要寫*.xml,通過jar包引用,完
	成整合,通過注解的形式完成配置。提高我們的開發效率
           

目錄結構

springBoot整合dubbo內建項目

1 服務層生産者開發(hs-ldm-server-service)

1.1添加dubbo依賴包

<dependencies>
  <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>2.8.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>2.8.0</version>
    </dependency>

		<dependency>
		    <groupId>com.alibaba.spring.boot</groupId>
		    <artifactId>dubbo-spring-boot-starter</artifactId>
		    <version>2.0.0</version>
		</dependency>
		
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>dubbo</artifactId>
		<version>2.6.1</version>
	</dependency>
	<dependency>
		<groupId>org.apache.zookeeper</groupId>
		<artifactId>zookeeper</artifactId>
		<version>3.4.6</version>
	</dependency>
	<dependency>
		<groupId>com.101tec</groupId>
		<artifactId>zkclient</artifactId>
		<version>0.9</version>
	</dependency>
           

如果不加curator-recipes和curator-framework依賴啟動java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy 問題。

啟動如果報錯,請檢查依賴版本是否過低!

1.2 配置application.properties

server.port=8050

#dubbo配置

spring.dubbo.application.name=hs-ldm-server-service

#注冊中心位址

spring.dubbo.registry.address=zookeeper://192.168.228.52:2181

#配置了這個後,就會一直有守護京城,而不是啟動就怪盜了

spring.dubbo.server=true

#掃描的包

spring.dubbo.scan=com.gy.ldm.server

#Dubbo Protocol

spring.dubbo.protocol.name=dubbo

spring.dubbo.protocol.port=29999

spring.dubbo.protocol.version=1.0.0

#DemoService version

service.version=1.0.0

1.3服務類

package com.gy.ldm.server.service;

import org.springframework.stereotype.Component;

import com.alibaba.dubbo.config.annotation.Service;
@Component
@Service(version="${service.version}" ,interfaceClass = DubboServiceApi.class)
public class DubboService implements DubboServiceApi{

	public String getDubbo() {
		// TODO Auto-generated method stub
		return "dubbo";
	}

}
           

@component (把對象執行個體化到spring容器中)

注意這裡的service引用!(com.alibaba.dubbo.config.annotation.Service)

1.4 服務啟動類

@SpringBootApplication
@EnableDubboConfiguration
public class LdmServerApp {
	
	public static void main(String[] args) {
		SpringApplication.run(LdmServerApp.class, args);
	}
}
           
springBoot整合dubbo內建項目

啟動成功!

2.接入層消費者開發

添加依賴和服務層提供者依賴一樣

2.1配置application.properties

server.port=8051
#dubbo配置
#服務名稱
spring.dubbo.application.name=ldm-client
#注冊中心位址
spring.dubbo.registry.address=zookeeper://192.168.228.52:2181 
#掃描的包
spring.dubbo.scan=com.gy.ldm.client
## DemoService version
service.version=1.0.0
           

2.2Controller層服務

package com.gy.ldm.client.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.dubbo.config.annotation.Reference;
import com.gy.ldm.server.service.DubboServiceApi;

@Controller
public class TestController {
	@Reference(version="${service.version}",check = false)
	private DubboServiceApi dubboServiceApi;
	@RequestMapping("customer")
	@ResponseBody
	public String customer(){
		
		return dubboServiceApi.getDubbo();
	}
}

           

2.3啟動服務

package com.gy.ldm.client;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;



@EnableDubboConfiguration
@SpringBootApplication
public class LdmClientApp {
	public static void main(String[] args) {
		SpringApplication.run(LdmClientApp.class, args);
	}
}


           

3.測試通路

springBoot整合dubbo內建項目

4.注冊中心服務

springBoot整合dubbo內建項目

可以看見提供者釋出的服務

springboot整合dubbo項目會上傳,可以在我首頁去下載下傳