自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 问答 (5)
  • 收藏
  • 关注

原创 Mq重复消费(幂等)解决方案

Mq重复消费(幂等)解决方案,以上都是我最近工作上的学习总结和思考,如果有什么更好的方案欢迎大家评论区讨论~~最后附上git仓库地址:https://gitee.com/himatengfei/mq-resolve-idempotent。

2024-04-08 14:59:57 970

原创 Spring中Bean的生命周期

字面意思”销毁bean对象之前执行的后处理器“,这里之所以说是bean对象,是因为bean对象的创建流程已经走完,此时的对象不再是普通的实例对象而是初始化后的bean对象。注意:在bean对象的创建过程中,处理的一直是类实例对象,等到完整的bean创建流程完成之后,这个对象才叫做bean对象。:字面意思”初始化bean对象之前执行的后处理器“,在对象初始化之前进行调用,会对接收的参数bean对象进行修改和替换。:字面意思”实例化对象之后执行的后处理器“,该方法的执行是在对象实例化之后,依赖注入之前。

2023-11-09 18:02:44 217

原创 SpringAop和Redis实现分布式锁限制接口重复提交

/作用目标在方法上//表示该注解可以在运行时通过反射进行访问@Inherited//标识:此场景就是用来限制同一用户新增操作多次点击接口重复调用的问题(暂时不用)//锁的过期时间,默认10s作为接口的最大执行时间,超过时间锁过期释放//自定义注解错误提示信息。

2023-11-08 17:33:50 275 2

转载 简单工厂模式、工厂方法模式和抽象工厂模式区别

简单工厂模式专门定义一个类(工厂)来负责创建其他类的实例**,被创建的实例通常都具有共同的父类。它又称为静态工厂方法模式**。它的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。在这个模式中,工厂类是整个模式的关键所在。它包含必要的判断逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。工厂方法模式工厂方法模式是对简单工厂模式进行了抽象。

2023-10-06 09:57:23 185

原创 Mysql存储过程基本语法

【代码】Mysql存储过程基本语法。

2023-08-01 17:06:17 277

原创 一个网站的登录业务流程到底是怎样的?(我与后端的爱恨情仇)

我:行,第二步你都算到了,但是即使你聪明绝顶,也顶不住我们人多势众我,我和我同学一起继续在前台输入规范的数据库不存在的账号进行频繁登录,实在不行我花重金让大佬给我写一个自动化的脚本,就要把你的后端给搞崩溃,咋样?上次你也给我提了一个醒,就是我向后端发送http请求存在用户相关信息泄露的问题,因此我想到一个解决办法,就是用户输入账号密码成功登录之后,将用户信息存放到session中,保存成功之后会返回一个。数据校验,我不仅在前端进行数据校验,在后端同样进行数据检查,先生,这一步可曾算到?

2023-07-03 09:00:42 211

原创 jdk代理和cglib代理(实例推导)

jdk动态代理和cglib动态代理的区别使用jdk动态代理生成的代理类与目标类(也就是被代理的原对象)之间是兄弟关系;使用cglib动态代理生成的代理类与目标类之间是父子关系总结上一句话,其本质jdk动态代理是基于接口实现的(目标类实现的接口);cglib动态代理是基于类实现的(目标类)

2023-06-27 15:27:46 117

原创 BeanFactory容器之模版方法模式(Spring)

上述就是我们自己定义的一个Spring容器,其中包括Bean对象的实例化、依赖注入、初始化等Bean的生命周期必要操作,但是仔细思考会发现,我们这里定义的容器并不是很方便扩展?假如:我们想自己定义一个Spring容器该怎么操作呢?

2023-06-24 10:40:13 107

原创 怎么使用Sprng提供的容器去注册一个Bean对象(BeanFactory工厂)

beanFactory 不会做的事不会主动调用BeanFactory的后处理器不会主动添加Bean的后处理器不会主动初始化单例(懒加载)不会解析BeanFactory,还不会解析 ${}, #{}

2023-06-24 09:43:08 299

原创 SpringClouid学习笔记

14年 新的架构官方定义: 微服务就是由一系列围绕自己业务开发的微小服务构成,他们独立部署运行在自己的进程里,基于分布式的管理集群:同一种软件的多个服务节点共同为系统提供服务分布式:不同软件集群共同为系统提供服务通俗定义: 微服务是一种架构,这种架构是将单个的整体应用程序分割成更小的项目关联的独立的服务。一个服务通常实现一组独立的特性或功能,包含自己的业务逻辑和适配器。各个微服务之间的关联通过暴露api来实现。这些独立的微服务不需要部署在同一个虚拟机,同一个系统和同一个应用服务器中。

2023-05-03 14:58:11 894 1

原创 宝塔面板部署vue前后端分离项目

检查连接数据库的用户名和密码都没有出现错误,而且本地mysql服务的localhost也修改成对应的阿里云服务ip了,可就是连接失败,不能访问数据库。在导入sql文件之前,需要先创建数据库,此时需要先设置这个数据库的用户名和密码(只是这个数据库的用户名和密码)而已,如果嫌麻烦可以使用全局的root用户(说明nginx监听的是8081的请求,如果listen配置了ip地址,那么下面的server_name就不生效了。安装宝塔面板,等待安装完成,会展示宝塔面板的外网、内网面板地址以及账号密码。

2023-04-29 09:26:20 2372 1

原创 了解Lucene(车辆名称映射Demo)

全文检索引擎工具包通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。

2023-03-26 22:01:07 1116

原创 在线考试系统设计

vue中computed计算属性中的…将两个list集合合并为一个,使用Stream流怎么实现,待测试!分析过程中:(借助工具:Vue.js开发者工具)参考若依框架写一个在线考试系统。

2023-03-17 23:07:24 843

原创 WebSocket网络通信执行流程

客户端创建的websocket对象与WebSocket服务端成功建立连接后,会触发服务端@OnOpen注解修饰的方法。1、创建WebSocket对象初始化连接,该对象成功创建之后,对象就代表着与WebSocket服务端之间的TCP连接。用户成功登录客户端创建websocket对象,websocket对象调用send事件–>触发WebSocket服务端。向与该服务端连接的所有客户端websocket对象发送广播消息,触发客户端websocket对象的。连接,以及可以通过该连接发送和接收数据的 API。

2023-02-28 16:41:08 1475

原创 mysql存储引擎、事务、索引

存储引擎是MysQL中特有的一个术语,其它数据库中没有。(oracle中有,但是不叫这个名字存储引擎这个名字)实际上存储引擎是一个表存储/组织数据的方式。不同的存储引擎,表存储数据的方式不同。

2023-02-22 17:18:23 398

原创 jdk8新特性

需要结合lambda表达式能够使代码更加简洁,lambda表达式的作用是为了匿名内部类更加简洁能够使用方法引入的前提:被引入的方法它的参数列表和方法返回值类型要与函数式接口定义的方法参数列表和方法返回值类型一致。

2023-02-21 20:49:35 227

原创 怎么在Gitee(码云)上传一个项目(一分钟)

SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码。原因就是在我们电脑本地仓库向远程仓库推送代码时,远程仓库方便记录这些代码的推送是由“何人”做的。HTTPS:不管是谁,拿到url随便clone,但是在push的时候需要验证用户名和密码;也可以推测出大致的意思,这里的origin就是一个别名,其实也就是。大概意思就是在本地仓库中给远程仓库起一个别名,别名就是。将修改的文件或者新文件推送到远程仓库的主分支。复制刚刚新建的仓库的。

2023-01-09 20:04:04 1263

原创 了解JWT“令牌”

JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON对象的形式安全地传输信息。此信息可以被验证和信任,因为它是数字签名的。JW T可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。认证流程用户首次登录成功并将用户信息保存到Session中()http协议本身是一种无状态的协议:用户成功登录之后继续发送后续业务请求,但是由于角色权限。

2022-12-31 21:25:04 810 1

原创 集线器与交换机、虚拟局域网(3.3)

当使用多个交换机互联的以太网,其本质就是一个广播域(在不知道目的MAC地址和对应接口的场景中),但是巨大的广播域会存在巨大的弊端,例如:广播风暴等,严重浪费网络和CPU资源。

2022-11-16 11:28:05 403

原创 PPP协议和MAC地址、IP地址及ARP协议三者之间的关系(3.2)

传送门:点对点PPP协议是目前使用最广泛的点对点数据链路层协议作用:PPP协议为点对点链路传输的各种协议数据报提供标准方法。

2022-11-15 12:26:38 2717

原创 数据链路层(3.1)

链路:一个结点到其相邻结点的物理线路,两结点中间没有相邻交换结点数据链路:把实现通信协议的硬件和软件加在链路上就构成了数据链路。

2022-11-12 12:43:18 396

原创 物理层(2.1)

在使用“时间域表示波形信号时”,代表不同离散数值的基本波形。

2022-11-11 12:22:35 333

原创 计算机网络体系结构(1.2)

传送门:总结。

2022-11-10 09:47:53 253

原创 三种交换方式(1.1)

电路交换分组交换报文交换。

2022-11-08 10:04:51 191

原创 RabbitMQ入门学习

“message queue”流量削峰:用户下单-MQ-处理订单应用解耦:订单系统完成,支付系统、库存系统、物流系统都要完成异步处理:B任务完成后需要通知A,采用异步方式接收和转发:相当于一个“快递驿站”生产者交换机:接收来自生产者的消息并推送至队列队列:接收数据的一直数据结构,仅受主机内存和磁盘限制的约束、消费者Hello World一个生产者–一个队列–一个消费者一个生产者–一个队列–多个消费者方式:消息应答机制:就是在“消费者”接收消息时,突然因为消费者线程发生异常而失败导致信息没有完全接收,那么就有

2022-10-21 08:20:33 237

原创 mysql数据类型

第1节的目的:就是在看这篇博客之前迅速熟悉这些数据类型的关键字,以至于不会对这些数据类型感到很陌生,这样做的好处就是能够更容易的往后面读,以至于不会产生抵触。我这么细节还不给个三连~char和varchar之间的区别。中的数字10是什么意思?blob和text的区别。

2022-10-20 23:43:46 183

原创 SSM复习面试题

实例化SqlSessionFactoryBuilder来解析配置文件流,获取文件的配置信息,创建SqlSessionFactory工厂实例。通过调用SqlSessionFactory接口对象中的openSesson方法获取SqlSession对象。调用Resources的静态方法来加载Mybatis的核心配置文件:mybatis-config.xml。调用SqlSession的getMapper方法获取业务接口对象。调用业务接口对象中的方法进行CRUD。关闭SqlSession。为创建的对象注入属性值。

2022-10-20 23:41:43 147

原创 SSM复习面试题

实例化SqlSessionFactoryBuilder来解析配置文件流,获取文件的配置信息,创建SqlSessionFactory工厂实例。通过调用SqlSessionFactory接口对象中的openSesson方法获取SqlSession对象。调用Resources的静态方法来加载Mybatis的核心配置文件:mybatis-config.xml。调用SqlSession的getMapper方法获取业务接口对象。调用业务接口对象中的方法进行CRUD。关闭SqlSession。为创建的对象注入属性值。

2022-10-20 20:26:45 394

原创 SSM+SpringBoot复习面试题

刚开始使用开发工具创建SpringBoot项目后会自动生成一个名为:项目名+Application 的一个入口类(也就是我们所说的主启动类),执行主启动类中的main方法,main方法中调用SpringApplication中的静态方法run方法,通过run方法来进行SpringApplication类的实例化操作,再根据实例化的类对象调用另一个run方法来进行项目的启动和初始化。总结来说,约定大于配置就是一种开发原则,就是为了减少人为的配置,能使用默认配置就使用默认配置,默认配置其实就是所谓的“约定”。

2022-10-20 20:25:36 430 1

原创 SQL优化复习

复合(联合)索引:part1/part2/part3三列,但是sql语句where条件未包含part1,按照Mysql联合索引的最左匹配原则,不会走联合索引。假设keyPart字段为字符类型,但给定的是数值,涉及隐式类型转换,不能走索引。优化方式:设计数据表时给字符设置默认值,例如0,对0值进行判断。进行null值判断,会导致数据库引擎放弃索引进行全表扫描。使用or关键字会导致数据库引擎放弃索引进行全表扫描。模糊查询会导致数据库引擎放弃索引进行全表扫描。会导致数据库引擎放弃索引进行全表扫描。

2022-10-20 20:24:23 325

原创 Spring复习面试题

Spring是一种轻量级的框架,它旨在降低软件开发的复杂性;并且能够很好的和各种框架整合,是一种非入侵式的框架;Spring的配置文件就是xml配置文件,里面配置了类与类之间的依赖信息,这就难免会造成xml配置文件内容太多不好管理Spring框架的核心就是Spring容器,容器创建对象,将它们装配在一起,配置和管理它们的声明周期spring容器创建对象是通过依赖注入完成的,就是通过构造函数、set方法等方式来创建bean对象,并把这些bean对象注入到容器中进行管理xml配置文件注解java配置类。

2022-10-20 20:23:17 345

原创 Redsi复习面试题

定期删除:Redis会将带有过期时间的key存放到一个字典中,以每秒10次的方式扫描字典(贪心算法)正常情况下给数据key分别设置一个随机的过期时间,而对应一些热点数据的key一般不设置过期时间。Redis存储数据以key-value键值对,关系型数据库基于二维表,数据格式更为严谨。Redis存储数据基于内存,传统关系型数据库存储数据到磁盘,Redis性能更优。Redis是单线程的是指Redis在读写键值对时是单线程的。惰性删除:每次访问key,都需要判断key的过期时间。Redis的持久化策略。

2022-10-20 20:21:52 268

原创 Mybatis复习面试题

Mybatis是一种持久层的框架,是一种半ORM(对象关系映射),它内部封装了JDBC,开发时只需要关注sql语句本身即可;Mybatis使用xml和注解的方式来映射数据信息,当执行完sql之后,会将执行结果映射到java对象并返回;Mybatis的接口绑定本质上就是:接口中的方法和xml文件中的一条sql绑定一种是通过注解的形式:在接口中的每个方法上添加增删改查对应的注解,在注解的参数中编写sql。

2022-10-20 20:20:54 294

原创 JVM复习面试题

全称:garbage collector roots,特指垃圾收集器的对象。

2022-10-20 20:18:34 220

原创 被问倒的面试题

AOP:面向切面编程,是一种设计规范,它的作用就是在不改动原始设计的基础上为对应的功能进行增强,这也正如Spring的理念就是非入侵式的怎么实现面向切面编程:对于我们业务中的执行方法我们叫“连接点”,而我们要插入的公共方法叫“通知”(所属通知类),要往哪些执行方法插入通知需要指定位置我们叫“切点”(不止匹配一个执行方法),而通知和切点怎么联系?是通过“切面”来指定AOP的工作流程:启动容器,读取切面中已经配置的切点,在判断bean对象所对应的类中的方法是否匹配到切面配置的切点。

2022-10-20 20:17:13 571

原创 【狂神说】Swagger入门

前后端分离时代(流行的:Vue+SpringBoot)后端:控制层、业务层、数据访问层前端:前端控制层、视图层前端可以伪造数据,不需要后端前后端优点前后端数据交互通过API前后端相对独立,松耦合前后端甚至可以部署在不同的服务器上产生问题前后端协调,可能会存在冲突问题解决方法制定schema计划纲要制定word文档计划前后端分离前端测试后端接口后端提供接口,并进行及时更新最新消息和改动通过Swagger可以添加一些难理解的类、属性的注释信息接口文档实时更新。

2022-10-04 16:12:06 769

原创 Spring面试高频

初始化后(AOP)-》代理对象假设我们使用@Autowired注解来给Spring指定调用哪个有参构造函数来创建bean对象,但是有一个问题就是有参构造函数这个构造方法是由参数的,假设这个参数是另一个类对象那么这个类对象的bean实例也正好存在Spring容器中,那么Spring是怎么拿到这个bean实例呢?这里就说到了我们了解的bean的自动装配了,一个是byType,另一个是byName,那么到底是先byType再byName,还是先byName再byType呢?

2022-09-23 09:12:28 225

原创 过滤器和拦截器

SpringMVC配置过滤器@WebFilter注解有效,web.xml配置无效;且使用@WebFilter注解成功登录,重新访问首页再次获取Session中值为空(成功登录再次访问首页也能够进去,说明Session是有值的,但是取不到)场景搭建:通过用户输入的用户名和密码来登录页面。场景搭建:通过用户输入的用户名和密码来登录页面。

2022-09-13 15:55:14 139

原创 Spring Security入门

在 Web 开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多的开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来,并在整个应用的开发过程中。市面上常用Shiro。

2022-09-13 15:42:44 163

原创 Linux常用命令

【代码】Linux常用命令。

2022-09-09 15:18:04 311

BootStrap插件

分页插件,日历插件,自动补全插件

2022-08-29

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

TA关注的人

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