Dubbo在项目中的两种使用方法


一.声明需要暴露的服务接口方式

1.service服务层

1.1 : applicationContext-service.xml配置文件

在applicationContext-service.xml中需要配置基本的包扫描,且使用一个服务就要暴露一个 服务接口

<context:component-scan base-package="com.pinyougou.sellergoods.service.impl" /> <dubbo:protocol name="dubbo" port="20881"></dubbo:protocol> <dubbo:application name="pinyougou-sellergoods-service"/> <dubbo:registry address="zookeeper://192.168.25.148:2181"/> <!-- 声明需要暴露的服务接口 --> <dubbo:service interface="com.pinyougou.sellergoods.service.BrandService" ref="brandServiceImpl" timeout="600000"/> <dubbo:service interface="com.pinyougou.sellergoods.service.SpecificationService" ref="specificationServiceImpl" timeout="600000"/>

1.2:impl实现java文件中@service注解应使用包

org.springframework.stereotype.Service;

下的注解.

2.web层

2.1springmvc.xml

在springmvc.xml中也需要配置基本的包扫描,且使用哪个服务就引用哪个服务

<context:component-scan base-package="com.pinyougou.manager.controller" /> <!-- 引用dubbo 服务 --> <dubbo:application name="pinyougou-manager-web" /> <dubbo:registry address="zookeeper://192.168.25.148:2181"/> <dubbo:reference interface="com.pinyougou.sellergoods.service.BrandService" id="brandService" /> <dubbo:reference interface="com.pinyougou.sellergoods.service.SpecificationService" id="specificationService" />

2.2在controller中引用service服务时要使用

javax.annotation.Resource;包下的@Resource注解
@Resource private BrandService brandService ;

二.使用dubbo注解方式

说明 : 使用此种方式不需要暴露服务接口,也不需要引用服务接口,直接使用dubbo注解即可

1.service服务层

1 .1 applicationContext-service.xml配置文件

<dubbo:protocol name="dubbo" port="20881"></dubbo:protocol> <dubbo:application name="pinyougou-sellergoods-service"/> <dubbo:registry address="zookeeper://192.168.25.148:2181"/> <dubbo:annotation package="com.pinyougou.sellergoods.service.impl" />

1.2:impl实现java文件中@service注解应使用包

com.alibaba.dubbo.config.annotation.Service;

中的注解

2.web层

2.1springmvc.xml

<!-- 引用dubbo 服务 --> <dubbo:application name="pinyougou-manager-web" /> <dubbo:registry address="zookeeper://192.168.25.148:2181"/> <dubbo:annotation package="com.pinyougou.manager.controller" />

2.2在controller中引用service服务时要使用

com.alibaba.dubbo.config.annotation.Reference;包下的@Resource注解
@Reference private BrandService brandService ;
经验分享 程序员 微信小程序 职场和发展