创建一个dubbo整合springboot的微服务项目

简介: 创建一个dubbo微服务项目

创建一个dubbo微服务项目


首先创建一个父项目,vhukze-dubbo-parent-pom,依赖引入,打包类型是pom


<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>


在此项目下创建子项目,接口父项目,vhukze-dubbo-public-api-service,打包方式是pom


在接口父项目下创建子项目,服务提供者的接口项目,vhukze-dubbo-public-api-member-service,打包方式是pom,写一个接口,


package com.vhukze.api.member;
public interface IMemberService {
    String getUser();
}

在parent父项目下创建上面服务提供者接口项目的实现项目,vhukze-dubbo-api-member-service-impl,打包方式jar,引入要实现的接口项目依赖


<dependency>
            <artifactId>vhukze-dubbo-public-api-member-service</artifactId>
            <groupId>com.vhukze</groupId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

写一个类实现接口,下面的Service注解是Dubbo里面的注解


package com.vhukze.api.member.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.vhukze.api.member.IMemberService;
@Service
public class MemberServiceImpl implements IMemberService {
    @Override
    public String getUser() {
        return "订单服务调用会员服务";
    }
}

写一个启动类

package com.vhukze;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * Hello world!
 *
 */
@SpringBootApplication
//开启dubbo服务,自动扫描Service注解的类,可以不在配置文件中添加扫包配置
@EnableDubbo
public class App 
{
    public static void main( String[] args )
    {
        SpringApplication.run(App.class);
    }
}


resources下application.yml配置文件

##服务器端口号
server:
  port: 8080
##注册到注册中心的名字
dubbo:
  application:
    name: member
  #采用协议的方式
  protocol:
    name: dubbo
    #发布dubbo端口号
    port: 20880
  #注册中心地址
  registry:
    address: zookeeper://127.0.0.1:2181
  scan:
  #实现类扫包范围
    base-packages: com.vhukze.api.member.impl


服务提供者写好了


创建服务消费者项目,在parent父项目下,vhuzke-dubbo-order-web,打包方式jar


resources下application配置文件


server:
  port: 8081
###dubbo 注册服务名称
dubbo:
  application:
    name: order
#  ###dubbo服务地址
#  protocol:
#    name: dubbo
#    port: 20880
  registry:
    address: zookeeper://localhost:2181
  consumer:
    timeout: 5000

写一个controller用来测试访问,Reference注解是从dubbo中注入实例,Service注解添加进来的实例。


这里直接注入实例到注解就行

package com.vhukze.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.vhukze.api.member.IMemberService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
class OrderController {
    @Reference
    private IMemberService iMemberService;
    @RequestMapping("/orderToMember")
    public String OrderToMember(){
        return iMemberService.getUser();
    }
}

启动zookeeper,访问上面的controller中的接口


http://localhost:8081/orderToMember


相关文章
|
1月前
|
Java 容器
如何在SpringBoot项目中使用过滤器和拦截器
过滤器和拦截器是日常开发中常用技术,用于对特定请求进行增强处理,如插入自定义代码以实现特定功能。过滤器在请求到达 `servlet` 前执行,而拦截器在请求到达 `servlet` 后执行。`SpringBoot` 中的拦截器依赖于 `SpringBoot` 容器,过滤器则由 `servlet` 提供。通过实现 `Filter` 接口并重写 `doFilter()` 方法可实现过滤器;通过实现 `HandlerInterceptor` 接口并重写相应方法可实现拦截器。两者的主要区别在于执行时机的不同,需根据具体场景选择使用。
如何在SpringBoot项目中使用过滤器和拦截器
|
10天前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
10天前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
52 1
|
27天前
|
Java 关系型数据库 MySQL
创建一个SpringBoot项目,实现简单的CRUD功能和分页查询
【9月更文挑战第6天】该内容介绍如何使用 Spring Boot 实现具备 CRUD 功能及分页查询的项目。首先通过 Spring Initializr 创建项目并选择所需依赖;其次配置数据库连接,并创建实体类与数据访问层;接着构建服务层处理业务逻辑;最后创建控制器处理 HTTP 请求。分页查询可通过添加 URL 参数实现。
|
11天前
|
消息中间件 监控 开发工具
微服务(三)-实现自动刷新配置(不重启项目情况下)
微服务(三)-实现自动刷新配置(不重启项目情况下)
|
9天前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
11天前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
2天前
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
22 10
|
1月前
|
Dubbo Java 应用服务中间件
微服务框架Dubbo环境部署实战
微服务框架Dubbo环境部署的实战指南,涵盖了Dubbo的概述、服务部署、以及Dubbo web管理页面的部署,旨在指导读者如何搭建和使用Dubbo框架。
85 17
微服务框架Dubbo环境部署实战
|
1天前
|
Java 关系型数据库 MySQL
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第4天】本文分析了Spring Boot应用在连接数据库时可能遇到的问题及其解决方案。主要从四个方面探讨:配置文件格式错误、依赖缺失或版本不兼容、数据库服务问题、配置属性未正确注入。针对这些问题,提供了详细的检查方法和调试技巧,如检查YAML格式、验证依赖版本、确认数据库服务状态及用户权限,并通过日志和断点调试定位问题。
下一篇
无影云桌面