当前位置: 首页 > news >正文

【微服务合集】

文章目录

  • MyBatisPlus
    • MyBatisPlus 注解
    • Wrapper
    • MybatisPlus批量插入(saveBatch)
    • MyBatisPlus 分页插件
  • Docker
    • Dockerfile
    • Docker网络
    • Docker部署项目

  1. 黑马微服务文档
  2. 尚硅谷SpringBoot2
  3. 尚硅谷SpringBoot3

MyBatisPlus

MyBatisPlus 注解

@TableName
@TableId
@TableField

MyBatisPlus也支持手写SQL的

mybatis-plus:mapper-locations: "classpath*:/mapper/**/*.xml" # Mapper.xml文件地址,当前这个是默认值。

Wrapper

QueryWrapper
UpdateWrapper
LambdaQueryWrapper

  • LambdaQueryWrapper
  • LambdaUpdateWrapper

MybatisPlus批量插入(saveBatch)

MybatisPlus的批处理是基于PrepareStatement的预编译模式,然后批量提交,最终在数据库执行时还是会有多条insert语句,逐条插入数据

MySQL的客户端连接参数rewriteBatchedStatements

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=truedriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: MySQL123

MyBatisPlus 分页插件

https://baomidou.com/pages/97710a/#paginationinnerinterceptor

@Configuration
public class MybatisConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {// 初始化核心插件MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 添加分页插件interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}

分页统一对象

@Data
@ApiModel(description = "分页结果")
public class PageDTO<T> {@ApiModelProperty("总条数")private Long total;@ApiModelProperty("总页数")private Long pages;@ApiModelProperty("集合")private List<T> list;@ApiModelProperty("返回状态码")private int code;
}

Docker

Dockerfile

https://docs.docker.com/engine/reference/builder/

Docker网络

# 1.用基本命令,寻找Networks.bridge.IPAddress属性
docker inspect mysql
# 也可以使用format过滤结果
docker inspect --format='{{range .NetworkSettings.Networks}}{{println .IPAddress}}{{end}}' mysql
# 得到IP地址如下:
172.17.0.2# 2.然后通过命令进入dd容器
docker exec -it dd bash# 3.在容器内,通过ping命令测试网络
ping 172.17.0.2
# 结果
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.053 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.059 ms
64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.058 ms

发现可以互联,没有问题。

但是,容器的网络IP其实是一个虚拟的IP,其值并不固定与某一个容器绑定,如果我们在开发时写死某个IP,而在部署时很可能MySQL容器的IP会发生变化,连接会失败。

所以,我们必须借助于docker的网络功能来解决这个问题,官方文档:
https://docs.docker.com/engine/reference/commandline/network/

# 1.首先通过命令创建一个网络
docker network create hmall# 2.然后查看网络
docker network ls
# 结果:
NETWORK ID     NAME      DRIVER    SCOPE
639bc44d0a87   bridge    bridge    local
403f16ec62a2   hmall     bridge    local
0dc0f72a0fbb   host      host      local
cd8d3e8df47b   none      null      local
# 其中,除了hmall以外,其它都是默认的网络# 3.让dd和mysql都加入该网络,注意,在加入网络时可以通过--alias给容器起别名
# 这样该网络内的其它容器可以用别名互相访问!
# 3.1.mysql容器,指定别名为db,另外每一个容器都有一个别名是容器名
docker network connect hmall mysql --alias db
# 3.2.db容器,也就是我们的java项目
docker network connect hmall dd# 4.进入dd容器,尝试利用别名访问db
# 4.1.进入容器
docker exec -it dd bash
# 4.2.用db别名访问
ping db
# 结果
PING db (172.18.0.2) 56(84) bytes of data.
64 bytes from mysql.hmall (172.18.0.2): icmp_seq=1 ttl=64 time=0.070 ms
64 bytes from mysql.hmall (172.18.0.2): icmp_seq=2 ttl=64 time=0.056 ms
# 4.3.用容器名访问
ping mysql
# 结果:
PING mysql (172.18.0.2) 56(84) bytes of data.
64 bytes from mysql.hmall (172.18.0.2): icmp_seq=1 ttl=64 time=0.044 ms
64 bytes from mysql.hmall (172.18.0.2): icmp_seq=2 ttl=64 time=0.054 ms

Docker部署项目

添加多配置文件和dockerfile部署文件

相关文章:

【微服务合集】

文章目录 MyBatisPlusMyBatisPlus 注解WrapperMybatisPlus批量插入(saveBatch)MyBatisPlus 分页插件 DockerDockerfileDocker网络Docker部署项目 黑马微服务文档尚硅谷SpringBoot2尚硅谷SpringBoot3 MyBatisPlus MyBatisPlus 注解 TableName TableId TableField MyBatisPlu…...

Hadoop之mapreduce参数大全-2

25.指定在Reduce任务在shuffle阶段的fetch操作中重试的超时时间 mapreduce.reduce.shuffle.fetch.retry.timeout-ms是Apache Hadoop MapReduce任务配置中的一个属性&#xff0c;用于指定在Reduce任务在shuffle阶段的fetch操作中重试的超时时间&#xff08;以毫秒为单位&#x…...

目标检测YOLO实战应用案例100讲-基于图像增强的鸟类目标检测(续)

目录 SRGAN网络模型改进研究 3.1 SRGAN超分辨率模型 3.1.1 SRGAN网络结构 3.1.2 SRGAN的损失函数...

MYSQL分表容量预估:简明指南

随着数据量的日益增长&#xff0c;分表技术成为优化mysql数据库性能的重要策略。本文介绍一种简明有效的预估分表容量大小的方法&#xff0c;帮助开发者和数据库管理员进行有效的资源规划。 背景 在处理大规模数据时&#xff0c;为了优化性能和管理便利&#xff0c;常常采用分…...

面试宝典进阶之Java线程面试题

T1、【初级】线程和进程有什么区别&#xff1f; &#xff08;1&#xff09;线程是CPU调度的最小单位&#xff0c;进程是计算分配资源的最小单位。 &#xff08;2&#xff09;一个进程至少要有一个线程。 &#xff08;3&#xff09;进程之间的内存是隔离的&#xff0c;而同一个…...

BOM简介

1.1 常用的键盘事件 1.1.1 键盘事件 键盘事件触发条件onkeydown按键被按下时触发onkeypress按键被按下时触发onkeyup按键被松开时触发 注意&#xff1a;addEventListener事件不需要加on <script>//1. keydown 按键按下的时候触发,按任意键都触发&#xff0c;也可以识…...

Java中的集合框架

概念与作用 集合概念 现实生活中&#xff1a;很多事物凑在一起 数学中的集合&#xff1a;具有共同属性的事物的总体 java中的集合类&#xff1a;是一种工具类&#xff0c;就像是容器&#xff0c;储存任意数量的具有共同属性的对象 在编程时&#xff0c;常常需要集中存放多个…...

Rustdesk打开Win10 下客户端下面服务不会自启,显示服务未运行

环境: Rustdesk1.19 问题描述: Rustdesk打开Win10 下客户端下面服务不会自启,显示服务未运行 解决方案: 1.查看源代码 pub async fn start_all() {crate::hbbs_http::sync::start();let mut nat_tested = false;check_zombie()...

【SPDK】【NoF】使用SPDK部署NVMe over TCP

SPDK NVMe over Fabrics Target是一个用户空间应用程序&#xff0c;通过以太网&#xff0c;Infiniband或光纤通道等结构呈现块设备,SPDK目前支持RDMA和TCP传输。 本文将在已经编译好SPDK的基础上演示如何使用SPDK搭建NVMe over TCP&#xff0c;前提是您已经将一块NVMe硬盘挂载…...

Spring boot 3 集成rocketmq-spring-boot-starter解决版本不一致问题

安装RocketMQ根据上篇文章使用Docker安装RocketMQ并启动之后&#xff0c;有个隐患详情见下文 Spring Boot集成 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2…...

python爬虫实战(6)--获取某度热榜

1. 项目描述 需要用到的类库 pip install requests pip install beautifulsoup4 pip install pandas pip install openpyxl然后&#xff0c;我们来编写python脚本&#xff0c;并引入需要的库&#xff1a; import requests from bs4 import BeautifulSoup import pandas as p…...

十三、K8S之亲和性

亲和性 一、概念 在K8S中&#xff0c;亲和性&#xff08;Affinity&#xff09;用来定义Pod与节点关系的概念&#xff0c;亲和性通过指定标签选择器和拓扑域约束来决定 Pod 应该调度到哪些节点上。与污点相反&#xff0c;它主要是尽量往某节点靠。 亲和性是 Kubernetes 中非常…...

对于网关的理解-Gateway

因为在使用微服务的时候&#xff0c;会有多端请求。会产生以下问题&#xff1a; 1.客户端需要记住每一个微服务的url 2.主机端口也会直接暴露 3.每一个微服务都需要认证 4.存在跨域问题 所以网关可以解决统一访问、隐藏真实的服务器地址、网关进行统一认证、解决跨域问题、…...

win10 - Snipaste截图工具的使用

win10 - Snipaste截图工具的使用 Step 1&#xff1a;下载 下载链接 提取码&#xff1a;wuv2 Step 2&#xff1a;直接解压可用 找到解压好的目录&#xff0c;并双击exe文件即可 Step 3&#xff1a;设置开机启动 在电脑右下角找到snipaste图标&#xff0c;右键&#xff0c;找…...

Selenium 学习(0.19)——软件测试之基本路径测试法——拓展案例

1、案例 请使用基本路径法为变量year设计测试用例&#xff0c;year的取值范围是1000<year<2001。代码如下&#xff1a; 2、步骤 先画控制流程图 再转化为控制流图&#xff08;标出节点&#xff09; V(G) 总区域数 4 V(G) E - N 2 (边数 - 节点数 2…...

工作记录-------正则表达式---小白也能看懂

什么是正则表达式 正则表达式是一种强大的工具&#xff0c;用于匹配和识别文本模式。 下面是一个基本的介绍&#xff1a; ^ 和 $: 这些是锚定字符&#xff0c;分别匹配字符串的开头和结尾。例如&#xff0c;^Hello匹配以 “Hello” 开头的字符串&#xff0c;end$匹配以 “en…...

C3-1.3.1 无监督学习——异常检测

C3-1.3.1 无监督学习——异常检测 1、举例&#xff1a;异常值检测示例——密度评估法 1.1 举一个例子 这里做的是 查看飞机发动机 异常检测&#xff1a; 左侧&#xff1a;X1 ,X2 … 是 可能会影响发动机状态的特征右侧&#xff1a; Dataset&#xff1a;训练数据集New engine…...

1.4.1机器学习——梯度下降+α学习率大小判定

1.4.1梯度下降 4.1、梯度下降的概念 ※【总结一句话】&#xff1a;系统通过自动的调节参数w和b的值&#xff0c;得到最小的损失函数值J。 如下&#xff1a;是梯度下降的概念图。 我们有一个损失函数 J(w,b)&#xff0c;包含两个参数w和b&#xff08;你可以想象成J(w,b) w*x…...

在IntelliJ IDEA中,.idea文件是什么,可以删除吗

相信有很多小伙伴&#xff0c;在用idea写java代码的时候&#xff0c;创建工程总是会出现.idea文件&#xff0c;该文件也从来没去打开使用过&#xff0c;那么它在我们项目里面&#xff0c;扮演什么角色&#xff0c;到底能不能删除它呢&#xff1f; 1、它是什么&#xff1f;有什么…...

【Spring Cloud】Gateway组件的三种使用方式

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Spring Cloud》。&#x1f3af;&#x1f3af; &am…...

手把手教你用STM32F103C8T6和ESP8266搭建智能温室大棚(附完整源码和PCB)

从零构建基于STM32与ESP8266的智能温室系统实战指南 1. 项目概述与核心设计思路 想象一下&#xff0c;在自家后院搭建一个能自动调节温湿度、精准灌溉的迷你温室&#xff0c;而成本不到一顿火锅的钱。这就是我们今天要实现的STM32F103C8T6ESP8266智能温室系统的魅力所在。不同于…...

零宽度字符隐写术全解析:从Unicode原理到实战检测工具推荐

零宽度字符隐写术全解析&#xff1a;从Unicode原理到实战检测工具推荐 在数字信息安全的隐秘角落&#xff0c;有一种几乎不可见的通信方式正在被安全研究人员和渗透测试工程师频繁使用——零宽度字符隐写术。这种技术允许我们将秘密信息嵌入普通文本中&#xff0c;肉眼无法察觉…...

MedGemma-X镜像轻量化:去除冗余依赖+精简日志+压缩缓存的体积优化实践

MedGemma-X镜像轻量化&#xff1a;去除冗余依赖精简日志压缩缓存的体积优化实践 1. 引言&#xff1a;为什么需要优化MedGemma-X镜像&#xff1f; 如果你已经体验过MedGemma-X的强大功能——那种像专业医生一样“对话式”阅片的智能体验&#xff0c;可能会发现一个现实问题&am…...

大学物理(上)-期末实战解析(5)——刚体力学核心:从转动惯量到角动量守恒的解题秘籍

1. 刚体力学入门&#xff1a;为什么转动惯量是解题钥匙 刚体力学是大学物理中最让人头疼的章节之一&#xff0c;尤其是当题目里出现"转动惯量"这个名词时&#xff0c;很多同学就开始手心冒汗。记得我第一次做这类题目时&#xff0c;盯着那个积分符号看了半小时愣是没…...

【MATLAB实战:从BCI Competition IV 2a数据加载到预处理全流程】

1. 初识BCI Competition IV 2a数据集 第一次接触脑机接口&#xff08;BCI&#xff09;研究时&#xff0c;最让人头疼的就是数据预处理。BCI Competition IV 2a数据集作为入门级黄金标准&#xff0c;包含了9名受试者的EEG数据&#xff0c;记录了左手、右手、双脚和舌头四种运动想…...

Python 3.14 JIT动态优化实战(企业级成本控制白皮书)

第一章&#xff1a;Python 3.14 JIT编译器演进与企业级定位Python 3.14 引入了首个官方集成的、生产就绪的 JIT&#xff08;Just-In-Time&#xff09;编译器——PyJIT&#xff0c;标志着 CPython 从纯解释执行向混合执行模型的战略跃迁。该 JIT 并非替代现有字节码解释器&#…...

Linux文件IO编程实战:用GEC6818开发板上的C程序玩转open/read/write/lseek

Linux文件IO编程实战&#xff1a;GEC6818开发板上的C语言文件操作精要 在嵌入式Linux开发中&#xff0c;文件操作是最基础也是最重要的技能之一。GEC6818作为一款广泛应用于教学和工业场景的开发板&#xff0c;其Linux系统编程能力尤为关键。本文将带你深入理解Linux"一切…...

Windows下OpenClaw安装全攻略:对接ollama的GLM-4.7-Flash模型

Windows下OpenClaw安装全攻略&#xff1a;对接ollama的GLM-4.7-Flash模型 1. 为什么选择OpenClawGLM-4.7-Flash组合 去年我在尝试自动化办公流程时&#xff0c;发现市面上的RPA工具要么功能臃肿&#xff0c;要么需要复杂的图形化编程。直到遇见OpenClaw这个开源智能体框架&am…...

OpenClaw性能优化:nanobot镜像响应速度提升50%

OpenClaw性能优化&#xff1a;nanobot镜像响应速度提升50% 1. 为什么需要优化nanobot镜像性能 第一次使用nanobot镜像时&#xff0c;我就被它的轻量级特性吸引——基于Qwen3-4B-Instruct-2507模型&#xff0c;却能跑在我的开发笔记本上。但实际使用中发现&#xff0c;当连续处…...

【图灵完备(Turing Complete)】五、从逻辑门到LEG:指令集与条件跳转的构建

1. 从逻辑门到处理器&#xff1a;LEG架构的诞生之路 记得我第一次用面包板搭建简单逻辑电路时&#xff0c;连个LED灯闪烁都要折腾半天。而现在我们要做的&#xff0c;是把这些基础逻辑门像乐高积木一样拼接成真正的处理器核心。LEG架构的设计初衷就是要解决原始图灵机指令宽度受…...