Dubbo在工作中的使用流程

前提:在各个模块引入dubbo依赖,或者只在公共模块引入也行

<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
		</dependency>

dubbo配置文件示例

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">

    <description>dubbo服务接口定义</description>

    <dubbo:application name="${application.name}" owner="${application.owner}" />
    
    <dubbo:registry protocol="zookeeper" address="${registry.address}"/>
		
    <dubbo:annotation package="xxx.viservice" />
    
    <dubbo:consumer check="false" />
    
</beans>
application.name=weipu-web-legou-consumer
application.owner=
#\u5e94\u7528\u6807\u8bc6
application.sign=xx

#127.0.0.1
registry.address=zookeeper://127.0.0.1:xxxx

#x1
x1.reference.version=1.0.0
x1.reference.group=shared
x1.reference.timeout=600000
x1.reference.retries=1
x1.reference.init=true

#x2
x2.reference.version=1.0.0
x2.reference.group=yy
x2.reference.timeout=600000
x2.reference.retries=1
x2.reference.init=true

1.在公共模块xxx-api编写service

package xx.xx.xx.xx;

import xx.xx.xx.xx.ZgCate;
import xx.xx.xx.xx.BaseService;

/**
 * 专柜分类表数据接口
*/
public interface ZgCateService extends BaseService<ZgCate, String> {

}

2.在xxx-serviceImpl模块编写serviceImpl 

@Service("xxZgCateServiceImpl")
public class ZgCateServiceImpl extends BaseServiceImpl<ZgCate, String> implements ZgCateService{

	@Resource(name="xxZgCateDaoImpl")
	private ZgCateDao zgCateDao;
	
	@Override
	public BaseDao<ZgCate, String> getBaseDao() {
		return this.zgCateDao;
	}

3.在xxx-dubbo模块引入api模块及xxx-serviceImpl

<dependencies>
		<dependency>
			<groupId>xx.xx.xx</groupId>
			<artifactId>xxxx-api</artifactId>
			<version>1.0.0-SNAPSHOT</version>
		</dependency>
        <dependency>
			<groupId>xx.xx.xx</groupId>
			<artifactId>xxx-serviceImpl</artifactId>
			<version>1.0.0-SNAPSHOT</version>
		</dependency>
</dependencies>

4.xxx-dubbo模块暴露服务

<!-- 专柜分类表 -->
	<dubbo:service interface="xx.xx.xx.xx.ZgCateService"
				   ref="xxZgCateServiceImpl" version="${xx.xx.version}"
				   group="${xx.xx.group}" timeout="${xx.xx.timeout}"
				   retries="${xx.xx.retries}" />

5.在web模块引用服务

<!-- 专柜分类表 -->
	<dubbo:reference id="weipuZgCateService"
					 interface="xx.xx.xx.xx.ZgCateService" version="${xx.xx.version}"
					 group="${xx.xx.group}" timeout="${xx.xx.timeout}"
					 retries="${xx.xx.retries}" />

6.在web模块代码中使用

@Controller("ZgCate")
@RequestMapping("/zgCate")
public class ZgCateController extends BasexxxController {

	@Resource
	private ZgCateService zgCateService;
....

简单流程:根据配置文件访问zookeeper获取服务的地址列表,进而远程调用服务.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值