码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBoot集成Dubbo

时间:2021-04-05 12:46:59      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:utc   iba   body   try   zookeeper   rri   util   linu   lin   

SpringBoot集成dubbo简单测试:查询所有学生数据

一、定义接口模块

1、定义学生实体bean

package com.inter.pojo;
import java.io.Serializable;

public class Student implements Serializable {
	private Integer id ;
	private String stuName ;
	private Integer age ;
	// 省略get、set方法
}

2、定义业务层接口

package com.inter.service;
import com.inter.pojo.Student;
import java.util.List;

public interface UserService {
	List<Student> getStudentList();
}

二、SpringBoot服务提供者模块

1、pom.xml所需依赖

    <!--springboot框架web项目启动依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!--dubbo集成springboot启动依赖-->
    <dependency>
        <groupId>com.alibaba.spring.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>2.0.0</version>
    </dependency>

    <!--注册中心-->
    <dependency>
        <groupId>com.101tec</groupId>
        <artifactId>zkclient</artifactId>
        <version>0.10</version>
    </dependency>

    <!--接口模块gav坐标-->
    <dependency>
        <groupId>com.interface</groupId>
        <artifactId>interface</artifactId>
        <version>1.0</version>
    </dependency>

    <!--mysql驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

    <!--mybatis集成springboot起步依赖-->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.4</version>
    </dependency>

2、在application.properties中配置应用上下文端口号、地址,数据源信息,dubbo相关配置

设置端口号,上下文路径
server.port=8081
server.servlet.context-path=/

配置数据源
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useSSL=true&characterEncoding=utf8&useUnicode=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root

指定mapper.xml文件的位置
mybatis.mapper-locations=src/main/resources/mapper/*.xml

指定应用模块名称
spring.application.name=provider
该模块是dubbo服务提供者
spring.dubbo.server=true
指定注册中心地址
spring.dubbo.registry=zookeeper://192.168.202.128:2181

3、编写代码
首先得了解两个重要的注解:
@Service,暴露服务提供者的服务,该注解不是Spring中的注解,而是dubbo提供的注解
@EnableDubboConfiguration,扫描SpringBoot启动类下dubbo提供的注解(没有它@Service标识的服务不会被注册到注册中心)

@Component // 将实例装载进容器中
@Service(interfaceClass = UserService.class)
public class UserServiceImpl implements UserService {

	@Autowired
	private UserMapper userMapper ;

	@Override
	public List<Student> getStudentList() {

		return userMapper.getStudentList();
	}
}

说明:Mybatis持久层代码简单,此处不予列出!

启动类:

@SpringBootApplication
@EnableDubboConfiguration  // 开启识别dubbo的注解
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

三、服务消费者

1、pom.xml所需依赖:服务提供者的所需依赖,去除数据源后的依赖
2、application.properties配置

设置端口号,上下文根路径
server.port=8082
server.servlet.context-path=/

应用名称
spring.application.name=consumer
指定注册中心
spring.dubbo.registry=zookeeper://192.168.202.128:2181

3、进行消费:获取服务提供者提供的服务
首先得知道的一个注解:@Reference,dubbo提供的注解,用来引用服务提供者提供的接口实现类

@Controller
@RequestMapping("/user")
public class UserController {

	@Reference(interfaceClass = UserService.class)
	private UserService userService ;

	@RequestMapping("/list")
	@ResponseBody
	public List<Student> getStuList(){
		return userService.getStudentList();
	}
}

启动类和服务提供者一样,需要在启动类上添加@EnableDubboConfiguration注解

四、测试

首先启动服务提供者,然后启动服务消费者,根据@RequestMapping资源映射发起请求,结果如下
技术图片

说明:SpringBoot集成dubbo,需要将tomcat服务器以及zookeeper注册中心安装在linux虚拟机中,此过程如有疑惑者,请查阅其他资料

SpringBoot集成Dubbo

标签:utc   iba   body   try   zookeeper   rri   util   linu   lin   

原文地址:https://www.cnblogs.com/chenjiaxujava/p/14614491.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!