dubbo小项目

完整Dubbo项目演示

1 原型

1.1 部门显示,显示全部部门信息
在这里插入图片描述

1.2 员工新增
在这里插入图片描述

1.3 查看部门员工
在这里插入图片描述

2 按照分布式架构进行设计项目

设定员工管理和部门管理不在同一个模块中,需要有一个员工管理项目和一个部门管理项目。
为了方便,不去每个项目使用一个窗口,而是使用聚合项目。
在这里插入图片描述

3 创建数据库表

create table dept(
id int(11) primary key auto_increment,
name varchar(20)
);insert into dept values(default,'开发部');
insert into dept values(default,'产品部');create table emp(
id int(11) primary key auto_increment,
name varchar(20),
photo varchar(200),
did int(11),
CONSTRAINT fk_emp_dept FOREIGN key (did) REFERENCES dept(id)
);

4 使用逆向工程

略。

5 创建父项目

5.1 创建项目parent。
在这里插入图片描述

5.2 编写pom.xml

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE</version>
</parent>
<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.3</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>4.2.0</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>4.2.0</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.48</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency></dependencies>
</dependencyManagement>

6 创建pojo项目

把逆向工程代码粘贴进来

7 创建mapper项目

7.1 编写pom.xml

<dependencies><dependency><artifactId>pojo</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>
</dependencies>

7.2 新建配置文件
新建application-mybatis.yml

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/maven?serverTimezone=GMT%2B8username: rootpassword: rootmybatis:mapper-locations: classpath:mybatis/*.xmltype-aliases-package: com.bjsxt.pojo

从逆向工程中把mapper接口和mapper.xml粘贴进行。
在这里插入图片描述

8 新建api项目

8.1 编写pom.xml

<dependencies><dependency><artifactId>pojo</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></dependency>
</dependencies>

9 新建provider

9.1 编写pom.xml

<dependencies><dependency><artifactId>mapper</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></dependency><dependency><artifactId>api</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId></dependency>
</dependencies>

9.2 新建配置文件
新建application.yml

dubbo:application:name: dubbo-providerregistry:address: zookeeper://192.168.52.128:2181# 加载其他配置文件,加载其他application-*.yml文件,多个名称之间使用逗号分隔
spring:profiles:active: mybatis

9.3 新建启动类
新建com.bjsxt.ProviderApplication

@SpringBootApplication
@EnableDubbo
@MapperScan("com.bjsxt.mapper")
public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class,args);}
}

10 完成Dept查询功能

10.1 在api中新建接口

com.bjsxt.dubbo.service.DeptDubboService
public interface DeptDubboService {List<Dept> selectAll();
}10.2	在provider中新建实现类
com.bjsxt.dubbo.service.impl.DeptDubboServiceImpl
@Service
public class DeptDubboServiceImpl implements DeptDubboService {@Autowiredprivate DeptMapper deptMapper;@Overridepublic List<Dept> selectAll() {return deptMapper.selectByExample(null);}
}

10.3 新建项目dept
10.3.1 添加依赖

<dependencies><dependency><artifactId>api</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId></dependency>
</dependencies>

10.3.2 编写配置文件
新建application.yml

dubbo:application:name: dubbo-dept-consumerregistry:address: zookeeper://192.168.52.128:2181

10.3.3 新建启动类

com.bjsxt.DeptApplication
@SpringBootApplication
@EnableDubbo
public class DeptApplication {public static void main(String[] args) {SpringApplication.run(DeptApplication.class,args);}
}

10.3.4 新建接口及实现类
接口:com.bjsxt.service.DeptService
实现类:com.bjsxt.service.impl.DeptServiceImpl

public interface DeptService {List<Dept> showAll();
}
@Service
public class DeptServiceImpl implements DeptService {@Referenceprivate DeptDubboService deptDubboService;@Overridepublic List<Dept> showAll() {return deptDubboService.selectAll();}
}

10.3.5 新建控制器

com.bjsxt.controller.DeptController
@Controller
public class DeptController {@Autowiredprivate DeptService deptService;@GetMapping("/dept")public String shwoDept(Model model){model.addAttribute("list",deptService.showAll());return "dept";}
}

10.3.6 新建页面
在resources /templates新建dept.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><table border="1" width="500"><tr><th>编号</th><th>部门名称</th><th>查看</th></tr><tr th:each="dept : ${list}"><td th:text="${dept.id}"></td><td th:text="${dept.name}"></td><td> <a th:href="@{/showEmp(did=${dept.id})}">查看</a> </td></tr></table>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何构建一套高可用的 APP 消息推送平台

转载自 如何构建一套高可用的 APP 消息推送平台 消息推送作为移动 APP 运营中的一项关键技术&#xff0c;已经被越来越广泛的运用。本文追溯了推送技术的发展历史&#xff0c;剖析了其核心原理&#xff0c;并对推送服务的关键技术进行深入剖析&#xff0c;围绕消息推送时产生…

为什么要有周考?周考是用来干什么的?

周考已经实行一年多的时间了&#xff0c;目前唯一用来检测学生们水平的可能就是周考的成绩了&#xff0c;不过&#xff0c;周考成绩也很能说明一切&#xff0c;每周周考的题目和范围都是本周所学知识&#xff0c;如果周考的成绩很差&#xff0c;那么可以很肯定的说&#xff0c;…

.NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序

一、前言 为什么选择VS Code&#xff1f;VS Code 是一款跨平台的代码编辑器&#xff0c;想想他的哥哥VS&#xff0c;并是微软出品的宇宙第一IDE&#xff0c;那作为VS的弟弟&#xff0c;VS Code 也不会差&#xff0c;毕竟微软出品。反正ken是这么认为的本篇开发环境&#xff1f…

晨读,难道只是为了完成任务而读的吗?

前两天&#xff0c;看到一篇“湖北恩施的一名学生早读课上大汗淋漓”的文章&#xff0c;不禁想起了我们班的早读。01早读情况除周一升旗以外&#xff0c;其余的学习日都是有早读的&#xff0c;但是早读的利用率有多少就不得而知了。一般在前一天布置作业的时候&#xff0c;作业…

AOP in dotnet :AspectCore的参数拦截支持

距离上一篇AspectCore的介绍发布已经很长一段时间了&#xff0c;这篇文章也早该和大家见面&#xff0c;最近一直忙于适应新工作&#xff0c;并在业余时间有幸向何镇汐&#xff0c;Savorboard&#xff0c;农夫&#xff0c;AlexLEWIS等几位大牛请教学习&#xff0c;收获颇多。另一…

GitHub 发布了一款重量级产品,可直接运行代码

转载自 GitHub 发布了一款重量级产品&#xff0c;可直接运行代码 【导读】10月16日&#xff0c;GitHub Universe开发者大会如期举行&#xff0c;并重磅推出GitHub Actions&#xff0c;平台主管Sam Lambert称&#xff0c;这将是GitHub历史上最大的改变。此外&#xff0c;GitHu…

“老师,请您多关注一下我吧!!!”

一个班&#xff0c;有学习好的&#xff0c;有学习差的&#xff1b;有喜欢表现的&#xff0c;也有不喜欢表现的。01爱表现的类型&#xff1a;第一种&#xff0c;喜欢表现的学生平时总是让时不时的让老师关注到他&#xff0c;比如上课和老师积极互动的&#xff0c;老师问一个问题…

.NET Core 事件总线,分布式事务解决方案:CAP

背景 相信前面几篇关于微服务的文章也介绍了那么多了&#xff0c;在构建微服务的过程中确实需要这么一个东西&#xff0c;即便不是在构建微服务&#xff0c;那么在构建分布式应用的过程中也会遇到分布式事务的问题&#xff0c;那么 CAP 就是在这样的背景下诞生的。 最初打算做…

dubbo小项目2

1、项目结构搭建 父项目pom.xml <?xml version"1.0" encoding"UTF-8"?>-<project xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi"http://www.w3.org/2001/XM…

Java中的TreeSet集合会自动将元素升序排序

我们都知道&#xff0c;java中的集合可以分为这么两大类&#xff1a;Collection和Map &#xff0c;其中Collection 接口中又可以派生出来两个接口&#xff0c;分别为&#xff1a;List和Set接口。其中&#xff0c;Set下有HashSet&#xff0c;LinkedHashSet&#xff0c;TreeSet&a…

jsp中使用cookie时报错……

今天在看jsp中的cookie时&#xff0c;遇到一个比较麻烦的问题。关键代码如下&#xff1a;登录页面&#xff1a;login.jsp<form action"doLogin.jsp" method"post">用户名&#xff1a;<input type"text" name"sname" /><…

FastDFS(分布式文件系统)

Tracker&#xff1a;标准服务端口22122、HTTP端口8080 Storage&#xff1a;标准服务端口23000、HTTP端口8888 文章目录一、架构二、文件上传、下载、删除1 时序图2 流程说明3 代码实现一、架构 架构图&#xff1a; Client&#xff1a;客户端。使用java语言编写的项目属于客户…

微服务中的异步消息通讯

前言 在上一篇文章中&#xff0c;我们说到了异步消息通讯&#xff0c;下面这篇文章呢&#xff0c;大部分内容是翻译来自于这篇微软的文章&#xff0c;所以其内容还是具有一定的理论指导意义的。 当我们跨多个微服务进行内部通讯的时候&#xff0c;异步消息和事件驱动至关重要…

CSS3的几个变形案例……

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;那个……辣椒酱很好吃的&#xff0c;哈哈哈哈&#xff01;今天给大家分享的内容是利用CSS制作网页的动画。辣椒酱&#xff1a;自从有了这款辣椒酱&#xff0c;拌饭再也不用老干妈CSS变形CSS的变形包括这么几种效果&#xff…

我眼中的ASP.NET Core之微服务

前言 前几天在博客园看到有园友在分享关于微软的一个微服务架构的示例程序&#xff0c;想必大家都已经知道了&#xff0c;那就是eShopOnContainers。 我们先不看项目的后缀名称 OnXXX &#xff0c;因为除了 OnContainers 还有 OnAzure&#xff0c;OnWeb&#xff0c;OnKuberne…

形象的解释神经网络激活函数的作用是什么

转载自 形象的解释神经网络激活函数的作用是什么 神经网络中激活函数的作用 查阅资料和学习&#xff0c;大家对神经网络中激活函数的作用主要集中下面这个观点&#xff1a; 激活函数是用来加入非线性因素的&#xff0c;解决性模型所不能解决的问题。 下面我分别从这个方面…

CSS3中的动画示例

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;上一期我们分享了几个CSS变形案例&#xff0c;大家还记得有哪几个吗&#xff1f;原文在这里&#xff1a;CSS3的几个变形案例……今天&#xff0c;我们来看看CSS的过渡&#xff1a;过渡简单的来讲&#xff0c;就是元素由一种…

ASP.NET Core之跨平台的实时性能监控(2.健康检查)

前言 上篇我们讲了《如何使用App Metrics 做一个简单的APM监控》,最后提到过健康检查这个东西. 这篇主要就是讲解健康检查的内容. 没看过上篇的,请移步:ASP.NET Core之跨平台的实时性能监控 首先我们来了解一下什么是健康检查(health checks)? 1.什么是健康检查? 健康检查…

​通俗理解神经网络BP反向传播算法

转载自 ​通俗理解神经网络BP反向传播算法 通俗理解神经网络BP反向传播算法 在学习深度学习相关知识&#xff0c;无疑都是从神经网络开始入手&#xff0c;在神经网络对参数的学习算法bp算法&#xff0c;接触了很多次&#xff0c;每一次查找资料学习&#xff0c;都有着似懂非…

CSS动画示例(上一篇是CSS过渡…)

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;前面&#xff0c;我们将CSS的变形和过渡都整理了&#xff0c;有需要的可以移步这里看&#xff1a;CSS3中的动画示例CSS3的几个变形案例……今天&#xff0c;我们来看看CSS3的动画。CSS3使用动画分为两个步骤&#xff1a;1.通…