栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 其他

基于SpringBoot的Dubbo启动

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于SpringBoot的Dubbo启动

dubbo框架

image.png 1 模块添加
  1. 新建三个模块,分别表示消息的提供者,消息的消费者和公共模块
image-20210923104204300.png
  • dubbo-parent的pom

说明:加入springboot的父依赖,作为版本控制


  org.springframework.boot
  spring-boot-starter-parent
  2.1.6.RELEASE
  • service-provider的pom

    
     com.yqj
     common
     1.0-SNAPSHOT
   
    
     com.alibaba.boot
     dubbo-spring-boot-starter
     0.2.0
   
   
     org.springframework.boot
     spring-boot-starter
   
   
     org.springframework.boot
     spring-boot-starter-test
   
  • service-consumer的pom

   
    com.yqj 
    common
    1.0-SNAPSHOT
  
   
    com.alibaba.boot
    dubbo-spring-boot-starter
    0.2.0
  
  
    org.springframework.boot
    spring-boot-starter
  
  
    org.springframework.boot
    spring-boot-starter-web
  
2 消息提供者模块
  1. 主启动类
@EnableDubbo //扫描dubbo的组件
@SpringBootApplication
public class UserServiceProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserServiceProviderApplication.class,args);
    }
}
  1. 服务接口(定义在common公共模块里面)目的是可以让其他模块得到依赖
public interface UserService {
    public String getUserAddress(String userId);
}
  1. 服务实现
@Service //dubbo的service注解,说明该类是一个资源
@Component
public class UserServiceImpl implements UserService {

    @Override
    public String getUserAddress(String userId) {
        String url = "dubbo localhost " + userId;
        return url;
    }
}
  1. 配置文件
server:
  port: 9001

dubbo:
  application:
    name: user-service-provider
  registry:
    protocol: zookeeper
    address: localhost:2181
  protocol:
    name: dubbo
    port: 20880
  monitor:
    protocol: registry
3 消息消费者
  1. 主启动类
@EnableDubbo
@SpringBootApplication
public class ServiceConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ServiceConsumerApplication.class,args);
    }
}
  1. 服务接口
public interface OrderService {
    public String getRemoteUserAddress(String userId);
}
  1. 服务实现
@Service
public class OrderServiceImpl implements OrderService {

    @Reference //远程注入
    private UserService userService; //从公共模块中导入 UserService

    @Override
    public String getRemoteUserAddress(String userId) {
        return userService.getUserAddress(userId);
    }
}
  1. controller调用服务的方法
@RestController
@RequestMapping("/order")
public class OrderController {

    @Autowired
    private OrderService orderService;

    @GetMapping("/{userId}")
    public String getRemoteUserAddress(@PathVariable("userId") String userId) {
        return orderService.getRemoteUserAddress(userId);
    }
}
  1. 配置文件
server:
  port: 8001
dubbo:
  application:
    name: order-service-consumer
  registry:
    address: zookeeper://localhost:2181
  monitor:
    protocol: registry
4 测试
  1. 启动zookeeper
  2. 访问网页测试 http://localhost:8001/order/12
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/279533.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号