自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何防止黑客恶意的刷端口

(时间戳为1秒钟)假如说:我们设置的不是1秒钟是10次吗,要是他这个key一秒钟访问累加超过10次就确认是恶意刷端口,当这个时间戳过了之后就没有用了,所以为了不浪费资源我们会在这个时间戳初次进来写的时候。1秒钟超过多少次就算攻击(比如1秒钟十次),当一秒钟刷新超过十次我们就认为是在刷新我们的接口,这个时候我们可以对key进行一个设置,可以给当前的一个端口。,(Redis是kv结构的,v具有类型结构)我们可以。(比如ttl=2),到时间就让他过期我们就不用他了。我们可以在把这个端口作为Redis的一个。

2024-04-26 17:58:11 313 1

原创 分布式调度器-Spring Task

在服务类中定义一个方法,并使用。

2024-04-20 11:38:05 2168

原创 SpringBoot 整合 RabbitMQ

流程图概括。

2024-04-13 17:11:33 670

原创 如何保证消息的可靠性(面试题)

Rebbitmq怎么保证消息的可靠性。

2024-04-09 21:45:09 917

原创 MQ的延迟队列

定时发布文章秒杀之后,给30分钟时间进行支付,如果30分钟后,没有支付,订单取消。预约餐厅,提前半个小时发短信通知用户。A -> 13:0016:30 延迟时间: 7*30 * 60 * 1000B -> 11:0017:30 延迟时间: 13*30 * 60 * 1000C -> 8:0013:30 延迟时间: 11*30 * 60 * 1000。

2024-04-09 21:36:58 1012

原创 MQ死信队列:面试题

在RabitMQ中充当主角的就是消息,在不同场景下,消息会有不同地表现。死信就是在特定的场景下的一种表现形式,这些场景包括:1. 消息被拒绝访问,即 RabbitMQ返回 basicNack 的信号时 或者拒绝basicReject2. 消费者发生异常,超过重试次数。其实spring框架调用的就是basicNack3. 消息的Expiration过期时长或队列TTL过期时间。4. 消息队列达到最大容量上述场景经常产生死信,即消息在这些场景中时,被称为死信。

2024-04-09 21:24:41 563

原创 交换机与队列的简介

首先先介绍一个简单的一个消息推送到接收的流程,提供一个简单的图黄色的圈圈就是我们的消息推送服务,将消息推送到 中间方框里面也就是 rabbitMq的服务器,然后经过服务器里面的交换机、队列等各种关系(后面会详细讲)将数据处理入列后,最终右边的蓝色圈圈消费者获取对应监听的消息。

2024-04-07 22:03:12 735

原创 MQ简介和面试题

MQ全称是Mwessage Queue(消息队列),是在消息传输过程中保存消息的容器,多用于分布式系统之间进行通信,解耦和低耦合性。

2024-04-07 21:27:55 580

原创 Spring Boot 使用 Redis

为什么要自定话应该序列化工具,因为他自己提供的不是很好,所以我们要自己定义一个,这样的话可以把java对象转化成json和字节码存入Redis 里,反序列化就是把json和字节码转化为java对象,泛型指定为。),这样在序列化时,即使目标类没有显式地声明类型信息,也能根据实际运行时类型推断并在JSON中包含类型信息,这对于处理多态类型的场景非常有用。实例,这样在整个Spring Boot应用中,当需要使用RedisTemplate进行操作时,将自动使用这个经过JSON序列化配置的模板。

2024-03-30 18:59:50 3007

原创 Redis实战

Java。

2024-03-30 17:33:14 446

原创 Redis 面试题

1,内存数据库,快 ,很快2,工作单线程woeker (Redis 6.0之前是单线程的),串行化,原子操作,(IO线程是多线程的 )可以避免上下文切换3,IO模型,(epoll ),支持高并发4,kv模型,v具有类型结构5,具有本地方法,计算向数据移动,(a,b)=> 交集6,二进制安全,Value 最大就是512M答:工作线程是单线程的,IO线程是多线程的,多线程请求,单线程工作(在6.0之前是单线程的,之后是工作线程是单线程的,IO线程是多线程的)

2024-03-30 17:05:33 931

原创 Redis

Redis 即远程字典服务,是一个开源的,使用c语言编写,支持网络,可基于内存亦可以持久化的日志型,key-value 的数据库,并提供多种语言的API。

2024-03-29 08:53:00 1018

原创 JWT面试题

JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案JWT总的来说是用来解决session的共享的问题的。

2024-03-24 18:09:15 1108

原创 Docker

Docker是一款开源的应用容器引擎,由Docker Inc.公司开发,自推出以来迅速成为云计算领域中的关键技术之一。Docker利用Linux的内核特性如cgroups(Control Groups)和namespaces实现了资源隔离与限制,可以在同一主机系统上轻松地创建和管理多个容器实例,每个容器都像是一个轻量级的、独立运行的虚拟环境。

2024-03-22 17:20:02 2348

原创 Linux系统

top和ps是 Linux 系统中两个非常重要的用于管理和监控进程的命令工具。

2024-03-20 22:50:24 1725

原创 如何解决idea报错8080端口被占用

13024是8080后面的id,用自己的id。查询是否占用8080端口。

2024-03-16 18:20:27 708

原创 SpringBoot自动配置原理

Spring Boot 项目创建完成后,即使不进行任何的配置,也能够顺利地运行,这都要归功于 Spring Boot 的自动化配置。Spring Boot 默认使用 application.properties 或 application.yml 作为其全局配置文件,我们可以在该配置文件中对各种自动配置属性(server.port、logging.level.* 等等)进行修改,并使之生效,那么您有没有想过这些属性是否有据可依呢?答案是肯定的。可以查找Spring Boot 官方文档:常见应用属性。

2024-03-08 22:10:52 353

原创 SpringMVC执行流程

2.使用处理器映射器(HandlerMapping )反射了一个Handler(Handler里包含了所有的方法),可以获取到所有的方法,并返回一个处理器执行链HandlerInterceptor (其中包含了Handler和多个拦截器,其实我们也可以将其看成是返回的是一共反射的Handler方法)3我们反射回来的方法不可以直接用,因为你不知道这个方法是注解的还是配置的,所以我们的前端控制器要调用处理器适配器(处理器适配器的作用就是无论你传来的Handler 方法是配置的还是注解的都可以适配上去正常使用)

2024-01-16 20:41:36 426

原创 web更改名字后没有小蓝点解决方法

点Settings。

2024-01-10 21:58:12 396

原创 Servlet入门

一,Servlet介绍1.1,什么是ServletServlet是Server Applet的简称,是用Java编写的是运行在 Web 服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。1.2,Servlet的使用方法Servlet技术的核心是Servlet接口,定义了Servlet与Servlet容器之间的契

2023-12-28 16:25:42 400

原创 javaweb

比如我们手机上的app QQ软件 飞秋特点:必须下载特定的客户端程序。服务端升级之后,客户端也需要随着升级。B/S(Broswer-Server).比如京东网站,腾讯qq官方网站特点:只需要安装浏览器就可以访问。如果服务器端升级了,浏览器端不需要随之升级。JavaWeb开发,开发的软件是基于B/S的软件架构。

2023-12-28 15:59:23 882

原创 MyBatis的动态SQL

MyBatis的映射文件中支持在基础SQL上添加一些逻辑操作,并动态拼接成完整的SQL之后再执行,以达到SQL复用、简化编程的效果。

2023-12-25 21:13:03 363

原创 MyBatis的关联查询

实体间的关系(拥有 has、属于 belong)OneToOne:一对一关系(account ←→ user)OneToMany:一对多关系(user ←→ account)ManyToMany:多对多关系(user ←→ role)什么是关联查询当访问关系的一方时,如果需要查看与之关联的另一方数据,则必须使用表链接查询,将查询到的另一方数据,保存在本方的属性中关联查询的语法指定“一方”关系时(对象),使用指定“多方”关系时(集合),使用。

2023-12-25 20:34:06 1433

原创 MyBaits的ORM映射

-批量给pojo定义别名,推荐使用小写-->

2023-12-21 17:03:15 1000

原创 MyBatis的CRUD

MyBatis的查询,删除,添加,修改,等基本操作以及占位符的区别

2023-12-21 14:16:23 786

原创 MyBatis运行原理

6.创建一个ProxyFactory代理工厂类其中有着MappedStatement, conn(MappedStatement存储着Configuration( Map<namespace(nameespace指的是namespace:唯一,接口全类名)+id(指的是要实现功能的id名), MappedStatement(映射)(sql(sql语句), resultType(返回值))>)mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。

2023-12-21 10:52:00 834

原创 MyBatis框架

框架全名叫(framework)(Framework)是一个框子————指其一个约束性,也是一个架子——指其支撑性,即已经对基础的代码进行了封装并提供相应的API,开发者在使用框架是直接调用封装好的api可以省去很多代码编写,从而提高工作效率和开发速度。

2023-12-20 21:28:03 852 1

原创 低耦合和高内聚

低耦合就是元素与元素之间的连接,感知和依赖量度。这里说的元素是功能,对象,系统,子系统,模块。高内聚就是另一个评判软件设置质量的标准。内聚更为专业的叫法叫做功能内聚,是对系统中的元素的相关性和集中度的量度,如果元素有高度的相关职责,除了这些职责在没有其他的工作,那么该元素就有高内聚。

2023-11-17 16:49:35 113

原创 SpringBoot随堂笔记

SpringBoot是为了简化Spring 应用的搭建和开发过程SpringBoot 可以自动扫描到要加载的信息并启动相应的默认程序。

2023-11-10 14:42:34 75 1

原创 Mysql数据库

概念:客户端CMD链接服务器,操作mysql服务器里的很多数据库里的数据。

2023-09-17 20:31:51 89 1

原创 反射和设计模式

/static:1.保证getClassA方法可以获取返回 2. 静态属性可以确保内存中只有一份。//static:1.保证getClassA方法可以获取返回 2. 静态属性可以确保内存中只有一份。//static:1.保证getClassA方法可以获取返回 2. 静态属性可以确保内存中只有一份。//static:1.保证getClassA方法可以获取返回 2. 静态属性可以确保内存中只有一份。//只有第一次获取时需要实例化,其后直接将之前实例化的结果返回即可。

2023-09-09 17:37:23 45 1

原创 IO流(字符流)

作用为读写char 和String类型的数据。

2023-09-09 15:45:13 44 1

原创 IO流(字节流)

类必须实现Serializable接口,意味着允许被序列化序列化:IO流拆解对象信息读取的过程反序列化:IO流组装对象信息构建对象的过程可以通过transient修饰符设定某个属性不参与序列化访问修饰符 transient 数据类型 属性名;//防止年龄参与序列化//省略getter、setter、构造、toString。

2023-09-09 14:56:55 101 1

原创 chp3-分支和循环

引言:程序执行过程中,有可能需要根据不同的结果执行不同的操作,该现象称之为分支结构。

2023-09-08 21:03:45 87 1

原创 Chp2-变量和运算符

思考:什么是程序?答:利用逻辑操作数据操作数据:增删改查、存。

2023-09-08 21:01:02 53 1

原创 Chp17-异常

运行时:继承RuntimeException,提供无参有参构造(调用父类有参构造给Throwable中的详细信息属性赋值即可)/*** 运行时异常*/​​​非运行时异常:继承Exception,提供有参无参构造/*** 非运行时异常*/​​​。

2023-09-05 11:29:11 68

原创 Chp-14 -List 集合

void addAll(下标,集合):将参数集合的所有元素添加至当前集合指定下标位置。下标 lastIndexOf(元素):获取指定元素最后一次出现的下标,不存在返回-1。下标 indexOf(元素):获取指定元素第一次出现的下标,不存在返回-1。boolean contains(元素):判断集合中是否存在指定元素。while(it.hasNext()){//有下一元素,继续执行。void add(下标,元素):向集合指定下标位置添加一个元素。旧元素 set(下标,新元素):将指定位置的元素替换新元素值。

2023-08-29 16:53:14 92 1

原创 Chp13-常用类

Object1.是所有的类的总父类,只要是类就一定直接或者间接继承自Object(Object 包含所有类)2.内部存放着所有对象都需要拥有的方法3.可以根据需求对其中的部分方法提供重写。

2023-08-25 21:16:06 80 1

原创 Chp12-内部类

概念在类的内部再次定义类作用打破封装,又不破坏封装分类 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类位置:外部类内部,与外部类属性,方法平级class 外部类类名 {class 内部类类名{}}使用1,无法定义静态内容,但是可以访问外部类静态内容2,当外部类属性,内部类属性,内部类局部变量重名时; 局部变量,之间访问 内部类属性:this.属性名

2023-08-24 20:15:12 59 1

原创 chp11 - 接口

3,调用 java.util.Arrays.sort(被排序的数组名,Comparator接口的实现类对象)* 在测试类中定义函数,传入Work类型的数组,要求找出所有的老师对象并放入Teacher数组中返回。System.out.println("ts数组的长度为:"+ts.length);* 定义一个函数,要求传出参数,可以执行“红灯泡发红光”、“绿灯泡发绿光”、“蓝灯泡发蓝光”System.out.println("老师的数量为:" + sum);

2023-08-24 19:33:40 126 1

空空如也

空空如也

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

TA关注的人

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