消费者:
消费者主要包含model,controller以及service层;
1.需要的jar包:(springboot项目用的是2.0.7版本)
<!--dubbo 依赖 -->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!-- zookeeper client依赖 -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
2.在application.properties中需要 配置dubbo服务端生产者
#配置dubbo消费者
spring.dubbo.application.name=consumer
#配置注册中心
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo协议
spring.dubbo.procotol.name=dubbo
spring.dubbo.procotol.port=20880
#消费者启动检测生产者是否已启动,当值为true时才会检测,默认为true
spring.dubbo.consumer.check=false
#roundrobin轮询机制
#random #随机机制
#leastactive #最少活跃调用数机制
spring.dubbo.reference.loadbalance=roundrobin
3. 构建项目
3.1: model层,与生产者的model层一致
import java.io.Serializable;
@Data
public class **Order implements Serializable** {
private Integer orderId; // 主键id
private String orderName; // 订单名
}
* Order implements Serializable 要实现序列化 所以实体类一定要实现Serializable .
3.2controller层
使用@Reference注入方式,导入的是dubbo的包package com.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.model.Order;
import com.service.OrderService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
public class OrderController {
@Reference
private OrderService orderService;
// 跳转到新增页面
@RequestMapping("toAddOrder")
public String toAddOrder(){
return "order/addOrder";
}
// 新增
@PostMapping("saveOrder")
public String saveOrder(Order order){
orderService.saveOrder(order);
return "redirect:selectOrderList";
}
3.3 service接口层
import com.model.Order;
import java.util.List;
public interface OrderService {
// 新增
void saveOrder(Order order);
// 查询
List<Order> selectOrderList();
// 删除
void deleteOrderById(Integer orderId);
// 修改 回显
Order selectOrderById(Integer orderId);
// 修改
void updateOrder(Order order);
}
4. 启动配置类
与生产者中的配置是相同的
4.1 @ComponentScan(basePackages = “com.*”) 由于类加载文件与所写的项目类不在同一级 ,需配置该注解,使其扫描到该项目中的内容;
4.2 @EnableDubboConfiguration:在application启动类中加上开启dubbo配置注解
4.3 @MapperScan(basePackages = “com.mapper”) 扫描mapper下的xml文件
生产者请查看:https://blog.youkuaiyun.com/weixin_43813343/article/details/85058500