自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 TCP的主要机制 | 网络编程

TCP为了实现可靠性,使用了确认应答机制和超时重传机制,这两个机制是TCP最核心的机制。基于确认应答机制,TCP在建立连接上就体现出了三次握手这样的形式,在释放连接上则是体现出了四次挥手。实现了可靠性,那就意味着牺牲了传输效率。为了提高效率,TCP采用了滑动窗口机制实现批量的发送数据,减少等待ACK的时间。而滑动窗口每次批量发送数据的大小则由流量控制和拥塞控制来共同决定。为了能再提高效率,TCP使用了延时应答。基于延时应答,就可以实现捎带应答,减少信息的发送次数,降低计算机的负荷。

2023-04-28 16:15:38 641 1

原创 MyBatis 实现复杂查询

SQL注入就是指服务器对用户输入的数据过滤不严谨, 使得攻击者在输入数据之后添加了SQL语句, 从而获得了非法的权限.例如, 我们登录操作需要用户输入 账号 和 密码此时黑客就可通过SQL注入的方式,不需要知道账号密码 也能获取数据。

2024-03-11 14:08:23 719

原创 RabbitMQ - 07 - 通过注解创建队列和交换机

之前消息模型的实现,都是通过rabbitMQ Management 控制台来手动创建 queue 和 exchange 的在项目开发中是通过注解的方式声明, 我们将通过注解来创建

2024-03-10 21:30:52 761

原创 RabbitMQ - 06 - Topic交换机

Topic交换机与Direct交换机基本一致可参考 这篇帖子topic交换机与Direct交换机的区别是Topic交换机接收的消息RoutingKey必须是多个单词,以 .分割Topic交换机与队列绑定时的bindingKey可以指定通配符:代表0个或多个词:代表1个词。

2024-03-10 15:52:32 705

原创 RabbitMQ - 05 - Direct交换机

Direct 交换机是 AMQP(高级消息队列协议)中的一种交换机类型,它根据消息的路由键(Routing Key)将消息发送到与之完全匹配的队列上。只有绑定到 Direct 交换机时指定了相同路由键的队列才会接收到消息。在使用 Direct 交换机时,生产者将消息发送到 Direct 交换机,并指定一个特定的路由键。Direct 交换机会根据消息的路由键将消息发送到与之完全匹配的队列上。如果多个队列的路由键与消息的路由键完全匹配,则消息会被发送到多个队列中。

2024-03-10 15:08:45 481 1

原创 RabbitMQ - 04 - Fanout交换机 (广播)

Fanout 交换机是 AMQP(高级消息队列协议)中的一种交换机类型,它将消息广播到所有与该交换机绑定的队列上。无论消息发送者将消息发送到哪个队列,所有绑定到该 Fanout 交换机的队列都会收到相同的消息副本。Fanout 交换机常用于需要广播消息给多个消费者的场景,例如发布订阅模式中的订阅者通常会使用 Fanout 交换机来接收发布者发送的消息。在 RabbitMQ 中,Fanout 交换机是其中一种常见的交换机类型,提供了简单且有效的消息广播机制。广播消息。

2024-03-10 14:18:51 607

原创 RabbitMQ - 03 - Work消息模型

工作(Work)消息模型是一种基本的消息队列模型,也称为任务队列模型。在工作消息模型中,多个消费者(workers)同时监听同一个队列,其中的消息将被平均分配给不同的消费者进行处理。

2024-03-10 13:06:08 1867

原创 RabbitMQ - 02 - 基本消息模型

基本消息模型 : 生产者直接将消息发送到队列,消费者直接监听消息队列, 少了一个交换机接收和路由消息的步骤。

2024-03-10 12:35:18 1975

原创 RabbitMQ - 01 - 快速入门

通过了解rabbitMQ Management 控制台界面 实现快速入门。

2024-03-09 15:41:45 494

原创 docker 数据卷 详解与实践

数据卷是一种虚拟目录,将容器内的目录与宿主机的目录关联起来,这样就可以实现在宿主机目录中完成对容器内目录内的文件的修改,不必进入到容器内进行修改.为什么要在宿主机进行修改?docker容器只提供对应软件的运行环境,不一定提供文本操作所需的软件( 如linux系统进行文本编辑的 vim ) ,因此如果想要修改文件内容 就需要在宿主机进行修改容器提供程序的运行环境,但是程序运行产生的数据、程序运行依赖的配置都应该与容器解耦。

2024-03-07 11:08:24 3076 1

原创 docker常见命令

以上是docker的常用命令,具体的命令格式可通过help了解。

2024-03-06 21:36:38 780

原创 linux系统上安装docker 并配置国内镜像

选择对应的linux系统,然后复制粘贴下面的配置命令即可。最后,执行命令,安装Docker。首先要安装一个yum工具。

2024-03-06 18:52:01 576

原创 项目部署后 通过公网IP访问不到的问题解决

项目部署后 通过公网IP访问不到的问题解决方案

2024-03-05 21:30:52 863

原创 项目部署发布

Java项目部署到服务器

2024-03-04 22:16:34 462

原创 xshell安装java/jdk

export JAVA_HOME= 你解压后的 Java 目录路径。然后再查看java版本,有相应的信息则说明配置成功了。文件 打开vim文本编辑器。保持退出vim后,让该文件执行。2.解压jdk安装包。

2024-03-04 21:31:06 552

原创 项目打包时报错 There are test failures.

打包时 报错: There are test failures.

2024-03-04 20:11:03 511

原创 关于项目时间与数据库中的时间不一致问题(少8个小时)

关于项目情况:1.springboot项目2.数据库为MySQL3.数据库时间正常,与实际时间一致.4.项目获取到的时间比数据库的时间少八个小时

2023-11-30 16:02:07 494

原创 MyBatis 基础用法详解

通过注解 @Param 来设置参数名称, Mybatis xml文件以这个参数名称为准, 一般两者都设置为相同名称, 如有不同, 以前者为准。如果我们直接通过 ${ } 的方式来实现传参,它就是直接替换的,有存在SQL注入的风险。删除操作的返回值是 int 值, 表示受影响的行数, 因此我们要用 Integer。我们再次插入相同的数据, 此时id 就自增为 4 了, 我们得到的返回值也是 4。如果获取的返回值,除了受影响的行数外, 还想获取 其对应的自增主键 id。

2023-10-27 14:14:27 142

原创 Spring MVC

Spring MVC 是一个web框架,而且是基于servlet API 构建的.MVC 的全称是 model(模型) view(视图) controller(控制)MVC是一种设计思想,而Spring MVC就是具体实现它的方式. 就好比IoC容器的设计思想,具体实现是通过依赖注入(DI) 依赖查找MVC 是 Model View Controller 的缩写,它是软件工程中的一种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分。

2023-10-25 13:53:25 397

原创 SpringBoot Lombok的使用

而lombok框架就是在编译的时候,根据注解去自动生成相应的代码,可以理解为帮程序员补全了代码,然后再编译成字节码,而JVM是不关心这些的,在它看来,前后两者的 .class文件(字节码) 都是相同的,因此最后呈现的效果也是相同的。在之前的学习中我们知道,我们所写的java代码( .java文件 )是需要经过编译生成字节码( .class 文件)的,然后才能加载到JVM上运行。通过使用lombok的注解,可以使我们的冗余代码大大减少,使得整体的代码风格更加简洁优雅。然后自动补全了获取日志对象的代码。

2023-10-23 23:07:49 607

原创 SpringBoot 日志

它是程序在运行过程当中输出的一些提示或异常信息,我们可以通过日志来观察程序执行的情况,如果程序出现 Bug,我们可以根据日志去发现和排查程序的 Bug。SpringBoot内置了slf4j 和 logback 两个日志框架,slf4j是我们日常开发中常用的框架,logback则是日志实现的底层框架,我们一般通过slf4j 来调用logback完成具体的实现。

2023-10-23 22:27:08 266

原创 Spring的执行流程 & Bean的作用域与生命周期

session表示在一次http session里只会存在一个bean实例,同一个session里多次请求该bean都 会返回同一个bean实例.在不同的session会话里,bean的实例是相互独立的。request表示在一次http请求中,只会存在一个bean实例,在同一个请求里多次请求该bean都会 指向同一个实例.在不同的http请求里,bean的实例是相互独立的。在 Spring 中,Bean 的生命周期指的是 Bean 实例从创建到销毁的整个过程。

2023-10-16 20:18:01 192

原创 Spring: 通过注解获取Bean对象

获取Bean对象也叫对象注入(对象装配), 指把对象取出来放到某个类中实现对象注入有三种方法:1.属性注入: 将对象注入到某个类的一个属性当中。2.构造方法注入: 通过构造方法来将对象注入到类中。3.Setter注入: 通过 SetXXX 系列方法将对象注入到类中。对象注入的常用注解有两个: 一个是@Autowired,另外一个是@Resource一, 属性注入。

2023-10-15 20:43:53 268

原创 Spring: 通过注解存储Bean对象

其他类注解用法相同,只需在类对象前加个注解即可,无需再在Spring配置文件上注入Bean,然后getBean()方法的第一个参数 填 类名的小写形式即可.如果同一个类里,存在多个方法注解的名字相同,那么Spring会注入第一个Bean,后面相同名字的@Bean 不会存放到Spring容器中。如果在不同的类中存在多个相同名字的Bean对象,我们可以通过 @order 来指定优先级,数值越大,越先将这个类的Bean对象注入。但不同的代码的功能是不同的,通过注解我们可以直观的区分出这些代码的用途是什么。

2023-10-15 14:22:34 55

原创 Spring 项目的创建与 Bean对象的使用

2.加载bean的机制不同. BeanFactory是懒加载,按需加载(用到一个bean再加载一个 bean), ApplicationContext 则是一次性加载所有的 bean对象。不同点: 1.ApplicationContext 是 BeanFactory 的子类, ApplicationContext 拥有更多的功能 (国际化支持,资源访问支持,事件传播等方面的支持)

2023-10-12 21:58:18 41

原创 MySQL 之JDBC编程

JDBC的概述JDBC的配置安装驱动包创建项目JDBC的使用1.创建并初始化数据源2.与数据库服务器建立连接3.构造SQL语句4.执行SQL语句5.释放必要的资源6.优化构造SQL语句7.JDBC修改操作8.JDBC删除操作9.JDBC查询操作

2023-10-11 10:30:07 29

原创 MySQL 事务详解

在数据库中,事务的本质就是把多条SQL语句打包成一个整体,要么全都执行,要么全都不执行通过实际业务理解事务:在实际生活中我们的转账操作涉及到两步,比如小王给小李转账五百1.小王的账户金额 减5002.小李的账户金额 加500这两步操作中,如果小王转账后,恰好数据库崩溃了,导致小李没有到账,这种情况就很麻烦因此我们要将这两条SQL语句打包为一个整体,要么都执行 小王-500 小李+500,要么两者都不执行 这样双方都不会有损失这样的打包操作就称为事务。

2023-10-08 13:32:20 76

原创 MySQL 索引详解

使用索引提高查询速度, 本质上是在减少硬盘IO的次数MySQL中对于带有主键的表, 就是按照主键索引的B+树来组织的.如果表中不止以有主键索引, 还有别的非主键列, 也有索引;对于非主键列会构造另一个B+树, 树中非叶子节点存储的都是这一列里面的key(比如一堆学生的姓名), 到了叶子节点这一层, 存储的不是完整的数据行, 存的只是id(主键列);所以, 当使用非主键列的索引进行查询时, 需要先查一遍索引列的B+树, 找到对应的主键列, 再查一遍主键列的B+树(回表), 查询过到对应的记录.

2023-10-08 09:32:07 31

原创 MySQL的复杂查询操作

如果多表之间的记录数据有存在不对应的情况, 那么内外连接就有一定的区别了, 内链接只会查询显示多表对应的记录, 左外连接会把左表的记录都显示出来, 右表中不对应的地方用null填充, 而右外连接就会把右表的记录都显示出来, 左表中不对应的地方用null填充.能够得到不同表的并集;1.此处涉及到了三个表,分别是 学生表,课程表,分数表,学生名字在student表,课程名字在course表。要求另外一张表(表2)的表结构必须与查询结果的结果相同才可进行插入操作 (列的个数,每列的类型)

2023-10-01 21:51:06 609

原创 MySQL的约束以及表关系设计

父表在约束子表,同时子表也在反向约束着父表子表新增/修改的数据不能超出父表的数据范围(父表要有)父表不能删除已经被孩子表依赖的数据。在数据库表的设计中,首先要明确各个实体(对象)之间的关系,明确之后就可以套用以上的方法,设计出符合需求的表结构

2023-10-01 16:06:58 44

原创 MySQL 表的增删查改

实际开发中的CRUD工程师:CRUD即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写我们创建了一个学生表,带有三个属性: id , 姓名 , 性别。

2023-09-28 10:22:20 33

原创 MySQL数据库基础

MySQL是一种数据库,数据库其实是"基于数据结构"实现出来的软件, 可以对数据进行有组织的存储和管理;MySQL是一种关系型数据库, 对于数据的存储, 在格式上有严格的要求(以类似于execl表格的方式来存储);而SQL是编程语言, SQL可以在MySQL等数据库软件上运行;MySQL是一个客户端, 服务器结构的软件, 我们安装好MySQL, 其实已经把客户端和服务器都安装好了;我们所使用的MySQL的命令行输入页面就相当于一个客户端,客户端是用来完成和用户交互的, 而服务器是存储数据的本体;

2023-09-22 21:03:00 32

原创 基于Servlet简单实现一个表白墙

因此,服务器要想解析json格式的数据,就必须引入jackson依赖,而使用jackson,最核心的对象就是ObjectMapper,通过这个对象,可以把json字符串解析成java对象,也可以把java对象解析成json字符串发送个浏览器。Get请求表示用户打开(刷新)了浏览器,因此服务器要把当前存在的message对象都发送给浏览器。同时可以有很多个对象,因此要创建一个链表,每实例化一个message对象,就add一个。在接口设计里已经明确了只有两个请求,一个是GET请求,一个是POST请求。

2023-09-22 00:39:47 33

原创 Linux命令

root 用户的 home 目录就是 /root, 是以 root 身份登录后,默认所在的目录。Windows图形化界面的优势是适合小白快速上手电脑Linux命令行操作的优势:1.带宽占用低2.系统资源的占用低3.命令行适合通过脚本实现批量的重复操作在Xshell里,复制是 Ctrl+Insert ,粘贴是Shift+Insert ,取消当前行输入是Ctrl+C ,清屏是Ctrl+Lman是帮助指令,可以查看 Linux 中的指令帮助,配置文件帮助和编程帮助等信息。

2023-09-20 11:02:12 43

原创 Linux环境配置:Xshell + CentOS + 阿里云服务器

Linux环境的搭建有下面几种方式:1.使用物理机:买了电脑后,不要装windows,直接转Linux。2.使用虚拟机:虚拟机软件,相当于这个软件是一个电脑,然后里面的系统是Linux系统,但是在日常使用中任意出现一些bug,且没有我们想要的外网IP,可作为云服务器方案的下位替代3.使用WSL:是微软在Windows内集成了一个Linux系统,但现在技术还不够完善,不能作为生产环境来使用。

2023-09-19 13:22:23 106

原创 详解 Servlet 及其常用 API

以POST请求为例,代码格式与GET请求相似,数据此时是在 HTTP 格式中的 body 部分的, 使用 from 表单进行构造, 此时 body 中的请求内容的格式 (

2023-09-18 21:22:34 92

原创 Servlet入门:第一个hello world程序

简化流程打包跟部署的流程是可以被简化的方式是在idea里装上插件 smart tomcat文件 -> 设置 -> 插件 (Plugins)下载后,点击右上角的长方形框框,点击编辑配置点击 + 号,找到smart tomcat,第一次使用请填写tomcat存放目录,Context path 一级路径,默认是项目名。smart tomcat的好处是,此处程序员可以自定义路径昵称确定后,点击长条框右边的绿色三角形 即可开始运行但要将电脑上开启的Tomcat都关掉,避免端口被占用。

2023-09-15 15:52:00 44

原创 Tomcat的安装与使用,Maven的配置与使用

Java生态中最主流,最活跃的两个社区分别是 Spring 和 ApacheTomcat是Apache社区中的一个开源项目,Tomcat是一个HTTP服务器, HTTP服务器有很多种, 在Java领域中, Tomcat是最知名, 最广泛使用的一个, 本质上是基于TCP服务器, 按照HTTP协议的约定来解析请求, 构造响应.是目前比较流行的Web应用服务器。

2023-09-14 20:41:22 148

原创 详解 HTTPS 的安全机制

在传统的HTTP协议中,数据在网络中是明文传输的,这样就容易导致传输的数据被运营商劫持或者被黑客所篡改。HTTPS (全称: Hyper Text Transfer Protocol over Secure Socket Layer), 就是 HTTP + 安全层(SSL), 是以安全为目标的 HTTP 通道, 简单讲就是 HTT P的安全版本, 即 HTTP 下加入 SSL 层, HTTPS 的安全基础是 SSL.

2023-09-13 23:47:40 46

原创 HTTP请求的构造

常见的HTTP请求构造有以下几种:1.通过地址栏输入 URL 构造出一个Get请求2.通过html一些特殊标签构造Get请求,如:linkascriptimg等等3.通过form表单构造Get请求4.通过 JS 的ajax实现各种请求的构造最常使用的是通过使用 HTML/JS 来进行请求的构造, 再简单一点还可以使用一些工具, 比如使用postman来进行请求的构造。

2023-09-12 22:25:09 27

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除