一、聲明需要暴露的服務接口方式
1.1 service服務層
【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"/>
【impl實現類中使用@Service注解】
這里的@Service來自org.springframework.stereotype.Service;包下
1.2 web層
【springmvc.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" />
【在controller中引用service服務時使用@Resource注解】
@Resource private BrandService brandService ;
@Resource來自於javax.annotation.Resource包下
二、使用dubbo注解方式(推薦)
說明 : 使用此種方式不需要暴露服務接口,也不需要引用服務接口,直接使用dubbo注解即可
2.1 service服務層
【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" />
【impl實現類使用@service注解】
注意,@Service來自com.alibaba.dubbo.config.annotation.Service;包下
2.2 web層
【springmvc.xml】
<!-- 引用dubbo 服務 --> <dubbo:application name="pinyougou-manager-web" /> <dubbo:registry address="zookeeper://192.168.25.148:2181"/> <dubbo:annotation package="com.pinyougou.manager.controller" />
【在controller中使用@Reference引用服務】
@Reference private BrandService brandService ;
@Reference來自com.alibaba.dubbo.config.annotation.Reference;包下