实现方式有三种:
方式一
使用注解的方式
导入dubbo-starter
在application.properties配置属性
使用@Service暴露服务
使用@Reference引用服务
使用@EnableDubbo开启注解Dubbo功能
或者配置包扫描
dubbo.scan.base-packages=com.atguigu.gmall
1
开启注解、包扫描,配置一个即可
这种方式
可以在@Service、@Reference注解中配置属性
属于类的配置,无法精确到方法的配置
方式二
使用dubbo的xml配置文件
导入dubbo-starter
使用@ImportResource导入dubbo的配置文件即可
@ImportResource(locations="classpath:provider.xml")
1
dubbo的配置文件,之前怎么写
现在还是怎么写,没有特殊要求
这种方式
可以做到方法的精确配置
方式三
使用注解API的方式
将每一个组件手动创建到容器中
让dubbo来扫描其他的组件
原文:https://blog.csdn.net/nangeali/article/details/82527039
在实际整合测试的时候我用的是第一种注解的方式实现,用到的
1.依赖如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--以上为web项目基础依赖-->
<!--dubbo-springBoot依赖-->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>1.0.1</version>
</dependency>
<!--zookeeper依赖-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.11</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
</dependencies>
2.yml配置参数:
server:
port: 8001
spring:
dubbo:
appname: consumer
registry: zookeeper://127.0.0.1:2181
protocol: dubbo
port: 20880
3.提供者
1)定义接口
2)实现接口(dubbo的@service注解,将类放到注册中心管理)
4.消费者
1)拷贝服务端提供的接口(包名一定要一致,不然会报空指针错误)
2)调用类,如控制层代码引用到了该方法,就需要用@Reference注解来从注册中心获取相应的实现类
@Controller
@RequestMapping("/user")
public class UserController {
@Reference
private User user;
@RequestMapping("/showName")
@ResponseBody
public String showUsername(){
return user.getUserName();
}
}