springboot整合dubbo的三种方式

第一种:

导入dubbo-starter依赖

在application.properties配置属性,

使用@Service【暴露服务】

使用@Reference【引用服务】

application.properties文件如下:

spring.application.name=user-server
server.port=8088
#dubbo服务名
dubbo.application.name=user-provider
#注册中心 多个用|隔开
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.registry.timeout=60000
#通信协议
dubbo.protocol.name=dubbo
#通信端口 
dubbo.protocol.port=20882
#链接监控中心
dubbo.monitor.protocol=registry

完整代码:https://gitee.com/sunqingzhong/springcloud_learning_course/tree/master/dubbo-01

第二种:

导入dubbo-starter依赖

配置dubbo xml配置文件

使用@ImportResource导入dubbo的配置文件即可




	
	
	
	
	
	
	
	
	
	
	
	
		
	
	
	
	
	
	
	
	
	
	
	
	
	

完整代码:https://gitee.com/sunqingzhong/springcloud_learning_course/tree/master/dubbo-02

第三种:

使用javabean的方式将配置创建到容器中,使用@Service【暴露服务】使用@Reference【引用服务】

package com.sun.dubbo.config;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.MethodConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.ServiceConfig;
import com.sun.dubbo.service.IUserService;

@Configuration
public class DubboConfig {
	/**
	*服务名
	*/
	@Bean
	public ApplicationConfig applicationConfig() {
		ApplicationConfig applicationConfig = new ApplicationConfig();
		applicationConfig.setName("user-provider");
		return applicationConfig;
	}
	
	//注册中心
	@Bean
	public RegistryConfig registryConfig() {
		RegistryConfig registryConfig = new RegistryConfig();
		registryConfig.setProtocol("zookeeper");
		registryConfig.setAddress("127.0.0.1:2181");
		return registryConfig;
	}
	
	/**
	*协议
	*/
	@Bean
	public ProtocolConfig protocolConfig() {
		ProtocolConfig protocolConfig = new ProtocolConfig();
		protocolConfig.setName("dubbo");
		protocolConfig.setPort(20882);
		return protocolConfig;
	}
	
	/**
	*暴露服务相关
	*/
	@Bean
	public ServiceConfig userServiceConfig(IUserService userService){
		ServiceConfig serviceConfig = new ServiceConfig<>();
		serviceConfig.setInterface(IUserService.class);
		serviceConfig.setRef(userService);
		serviceConfig.setVersion("1.0.0");
	    serviceConfig.setId("userService");
		
		//配置每一个method的信息
		MethodConfig methodConfig = new MethodConfig();
		methodConfig.setName("getUserAddressList");
		methodConfig.setTimeout(1000);
		
		//将method的设置关联到service配置中
		List methods = new ArrayList<>();
		methods.add(methodConfig);
		serviceConfig.setMethods(methods);
		return serviceConfig;
	}

}

完整代码:https://gitee.com/sunqingzhong/springcloud_learning_course/tree/master/dubbo-03

你可能感兴趣的:(dubbo)