一、基本步骤
1. Dubbo服务接口
创建一个接口项目,12-springboot-dubbo-interface,该项目只定义接口和model类
1、创建普通的Maven项目,dubbo服务接口工程
2、创建 UserService 接口
创建service包,在这个包下写
package service;/** * @author MD * @create 2020-08-22 6:31 */public interface StudentService { /** * 获取学生总人数 * @return */ Integer queryAllStudentCount();}
2. Dubbo服务提供者
创建 SpringBoot 框架的 WEB 项目,13-springboot-dubbo-provider
2、依赖
加入 Dubbo 集成 SpringBoot 的起步依赖
由于使用 zookeeper 作为注册中心,需加入 zookeeper 的客户端
加入 Dubbo 接口依赖
<!--Dubbo 集成 SpringBoot 框架起步依赖--><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency><!--Zookeeper 客户端依赖--> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency><!--dubbo接口依赖--> <dependency> <groupId>com.md.springboot</groupId> <artifactId>12-springboot-dubbo-interface</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
3、在Springboot 的核心配置文件
application.properties中配置 dubbo
#设置内嵌Tomcatserver.port=8081#设置上下文根server.servlet.context-path=/#配置 dubbo 的服务提供者信息#服务提供者应用名称(必须写,且不能重复)spring.application.name=springboot-dubbo-provider#设置当前工程为服务提供者spring.dubbo.server=true#设置注册中心spring.dubbo.registry=zookeeper://localhost:2181
注意:Dubbo 的 的注解都是自定义的注解,由我们添加的 Dubbo 依赖中的类 进行 处理 编写dubbo 配置是没有提示的
4、编写 Dubbo 的接口实现类,并暴露接口
在com.md.springboot.service.impl下面
package com.md.springboot.service.impl;import com.alibaba.dubbo.config.annotation.Service;import org.springframework.stereotype.Component;import service.StudentService;/** * @author MD * @create 2020-08-22 6:46 */@Component// 也可以这样写,写接口的权限定类名//@Service(interfaceName ="com.md.springboot.service.StudentService",version = "1.0.0",timeout= 15000)//暴露出接口的类名.class,版本号,@Service(interfaceClass = StudentService.class,version = "1.0.0",timeout = 15000)public class StudentServiceImpl implements StudentService { @Override public Integer queryAllStudentCount() { //调用数据持久层,经过一系列操之后得到学生总人数 return 200; }}
注意使用service注解的时候:使用alibaba的这个
5、SpringBoot 入口 程序启 类上加开启 Dubbo 配置支持注解
package com.md.springboot;import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@EnableDubboConfiguration // 开启Dubbo配置public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
3. Dubbo服务消费者
创建 SpringBoot 框架的 WEB 项目,14-springboot-dubbo-comsumer
2、依赖pom.
加入 Dubbo 集成 SpringBoot 的起步依赖
由于使用 zookeeper 作为注册中心,需加入 zookeeper 的客户端
加入 Dubbo 接口依赖
<!--Dubbo 集成 SpringBoot 框架起步依赖--><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency><!--Zookeeper 客户端依赖--> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency><!--dubbo接口依赖--> <dependency> <groupId>com.md.springboot</groupId> <artifactId>12-springboot-dubbo-interface</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
3、在Springboot 的核心配置文件
application.properties中配置 dubbo
#设置内嵌Tomcatserver.port=8080#设置上下文根server.servlet.context-path=/#配置 dubbo 的服务提供者信息#服务提供者应用名称(必须写,且不能重复)spring.application.name=springboot-dubbo-consumer#设置注册中心spring.dubbo.registry=zookeeper://localhost:2181
4、编写 Controller 类,调用远程的 Dubbo 服务
在com.md.springboot.web下面
package com.md.springboot.web;import com.alibaba.dubbo.config.annotation.Reference;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.ResponseBody;import service.StudentService;/** * @author MD * @create 2020-08-22 7:15 */@Controllerpublic class StudentController { // 调用暴露的接口 @Reference(interfaceClass = StudentService.class,version = "1.0.0",check = false) private StudentService studentService; @GetMapping(value = "/student/count") @ResponseBody public Object studentCount(){ Integer count = studentService.queryAllStudentCount(); return "学生的总人数:"+count; }}
注意使用Reference注解的时候:使用alibaba的这个
5、SpringBoot 入口 程序启动类上加开启 Dubbo 配置支持注解
package com.md.springboot;import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@EnableDubboConfiguration // 开启Dubbo配置public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
4. 测试
5. 总结
接口工程:存放实体bean和业务接口
服务提供者:
- 业务接口的实现类并将服务暴露且注册到注册中心,调用数据持久层
- 添加依赖dubbo、zookeeper、接口工程
- 配置服务提供者的核心配置文件
服务消费者:
- 处理浏览器客户端发送的请求,从注册中心调用服务提供者所提供的服务
- 添加依赖dubbo、zookeeper、接口工程
- 配置服务消费者的核心配置文件
二、SpringBoot 集成 SSM+Dubbo
1. 创建 Maven Java 工程,Dubbo 接口工程
2. 创建 Dubbo 服务提供者项目
16-springboot-ssm-dubbo-provider
3. 配置 MyBatis 逆向工程
在16-springboot-ssm-dubbo-provider项目中
1、添加插件,pom.
<!--mybatis 代码自动生成插件--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> <configuration> <!--配置文件的位置--> <configurationFile>GeneratorMapper.
2、将配置文件存放到项目根据目录
GeneratorMapper.
注意:生成model类时,指定位置,生成到接口项目中
<?
数据表名:t_student
4. 双击生成
生成的如下:
5、实体 bean 必须实现序列化
public class Student implements Serializable {
4. 服务提供者添加依赖
在pom.
注意:
先生成完逆向工程,在写接口依赖
<!--Dubbo 集成 SpringBoot 框架起步依赖--> <dependency> <groupId>com.alibaba.spring.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency> <!--Zookeeper 客户端依赖--> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency> <!--MyBatis 集成 SpringBoot 框架起步依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency> <!--MySQL 数据库驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.9</version> </dependency> <!--生成完逆向工程再写这个--> <!--接口工程--> <dependency> <groupId>com.md.springboot</groupId> <artifactId>15-springboot-ssm-dubbo-interface</artifactId> <version>1.0.0</version> </dependency>
5. 手动指定资源配置文件路径
在 pom 文件中的 build 标签中添加
<!--手动指定资源配置文件路径--> <!--目的:将数据持久层映射文件编译到 classpath 中--> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.
6. 配置提供者核心配置
application.properties
#配置内嵌 Tomcat 端口号server.port=8081#设置上下文根server.servlet.context-path=/provider#配置数据源spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/springbootspring.datasource.username=rootspring.datasource.password=123456#配置 dubbo 服务提供者spring.application.name=springboot-ssm-dubbo-provider#表示是服务提供者spring.dubbo.server=true#注册中心地址spring.dubbo.registry=zookeeper://localhost:2181
7. 配置提供者启动类
package com.md.springboot;import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@EnableDubboConfiguration@MapperScan(basePackages = "com.md.springboot.mapper") // 扫描数据持久层映射文件public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
8. 创建 Dubbo 服务消费者项目
17-springboot-ssm-dubbo-consumer
9. 服务消费者添加依赖
完整的pom.
<?
10. 配置消费者核心配置
application.properties
#配置内嵌 Tomcat 端口号server.port=8080#配置项目上下文根server.servlet.context-path=/consumer#配置 zookeeper 注册中心spring.application.name=springboot-ssm-dubbo-consumerspring.dubbo.registry=zookeeper://localhost:2181
11. 配置消费者启动类
@SpringBootApplication@EnableDubboConfiguration // 开启dubbo支持配置public class Application {
12. 创建 StudentService 业务接口类
在15-springboot-ssm-dubbo-interface中
package com.md.springboot.service;import com.md.springboot.model.Student;/** * @author MD * @create 2020-08-22 9:35 */public interface StudentService { /** * 通过id查询学生信息 * @param id * @return */ Student queryStudentById(Integer id);}
13. 创建StudentServiceImpl 业务接口实现类
在16-springboot-ssm-dubbo-provider中
package com.md.springboot.service.impl;import com.alibaba.dubbo.config.annotation.Service;import com.md.springboot.mapper.StudentMapper;import com.md.springboot.model.Student;import com.md.springboot.service.StudentService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;/** * @author MD * @create 2020-08-22 9:37 */@Component// 暴露接口@Service(interfaceClass = StudentService.class,version = "1.0.0",timeout = 15000)public class StudentServiceImpl implements StudentService { // 逆向工程自动生成的StudentMapper @Autowired private StudentMapper studentMapper; @Override public Student queryStudentById(Integer id) { return studentMapper.selectByPrimaryKey(id); }}
14. StudentController 控制层
在17-springboot-ssm-dubbo-consumer中
package com.md.springboot.web;import com.alibaba.dubbo.config.annotation.Reference;import com.md.springboot.model.Student;import com.md.springboot.service.StudentService;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * @author MD * @create 2020-08-22 9:43 */@RestControllerpublic class StudentController {// 使用暴露的接口 @Reference(interfaceClass = StudentService.class,version = "1.0.0",check = false) private StudentService studentService; @RequestMapping(value = "/student") public Object queryStudent(Integer id){ Student student = studentService.queryStudentById(id); return student; } @RequestMapping(value = "/student/detail/{id}") public Object queryStudent1(@PathVariable("id") Integer id){ Student student = studentService.queryStudentById(id); return "RESTful:"+student; }}
15. 启动测试
- 开启zookeeper
- 开启提供者Tomcat
- 开启消费者Tomcat
原文转载:http://www.shaoqun.com/a/504547.html
谷歌趋势:https://www.ikjzd.com/w/397
eori:https://www.ikjzd.com/w/499
一、基本步骤1.Dubbo服务接口创建一个接口项目,12-springboot-dubbo-interface,该项目只定义接口和model类1、创建普通的Maven项目,dubbo服务接口工程2、创建UserService接口创建service包,在这个包下写packageservice;/***@authorMD*@create2020-08-226:31*/publicinterfaceSt
淘粉吧返利:淘粉吧返利
淘粉吧怎么返利:淘粉吧怎么返利
eBay新手干货站:feedback页面回复买家评论&追加评论实操:eBay新手干货站:feedback页面回复买家评论&追加评论实操
佛山圣诞节2020去哪玩?佛山2020圣诞节去哪看烟花表演:佛山圣诞节2020去哪玩?佛山2020圣诞节去哪看烟花表演
成都武侯祠门票 :成都武侯祠门票
没有评论:
发表评论