自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

write less , do more

日常工作学习进阶总结,希望对你有帮助。

  • 博客(401)
  • 资源 (6)
  • 收藏
  • 关注

原创 Spring MVC 之 Restful 风格请求⽀持

Restful 是⼀种 web 软件架构⻛格,它不是标准也不是协议,它倡导的是⼀个资源定位及资源操作的⻛格。什么是RESTREST(英⽂:Representational State Transfer,简称 REST,表现层状态转换)描述了⼀个架构样式的⽹络系统, ⽐如web 应⽤程序。它⾸次出现在 2000 年 Roy Fielding 的博⼠论⽂中,他是 HTTP 规范的主要编写者之⼀。

2023-09-26 13:12:06 2697 54

原创 Spring MVC 请求参数绑定

Spring MVC 是一个用于构建 Web 应用程序的框架,它提供了一种方便的方式来处理 HTTP 请求和响应。在 Spring MVC 中,请求参数绑定是将 HTTP 请求中的参数映射到控制器方法的参数上的过程。Spring MVC 提供了多种方式来实现请求参数绑定。

2023-09-20 13:09:56 4626 67

原创 Spring MVC请求处理流程和九大组件

⽤于重定向时的参数传递,⽐如在处理⽤户订单时候,为了避免重复提交,可以处理完post请求之后重定向到⼀个get请求,这个get请求可以⽤来显示订单详情之类的信息。组件是⽤来解析主题的。主题是样式、图⽚及它们所形成的显示效果的集合。如果上传多个⽂件,还可以调⽤ getFileMap()⽅法得到Map这样的结构,MultipartResolver 的作⽤就是封装普通的请求,使其拥有⽂件上传的功能。是⽤来查找 Handler 的,也就是处理器,具体的表现形式可以是类,也可以是⽅法。

2023-09-14 12:56:10 7703 83

原创 MyBatis源码剖析之Configuration、SqlSession、Executor、StatementHandler细节

MyBatis是一个流行的持久化框架,用于在Java应用程序中简化与关系数据库的交互。了解MyBatis的核心组件对于深入理解它的工作原理非常重要。Configuration(配置对象)对象是MyBatis的配置类,负责管理MyBatis的全部配置信息。它包含了数据源(DataSource)、类型处理器(TypeHandler)、Mapper映射文件(Mapper XML)、全局设置(settings)、插件(plugins)等。

2023-08-04 14:19:57 3317 41

原创 MyBatis源码剖析之延迟加载源码细节

在开发过程中很多时候我们并不需要总是在加载⽤户信息时就⼀定要加载他的订单信息。此时就是我们所说的延迟加载。举个栗⼦:在⼀对多中,当我们有⼀个⽤户,它有个100个订单在查询⽤户的时候,要不要把关联的订单查出来?在查询订单的时候,要不要把关联的⽤户查出来?回答在查询⽤户时,⽤户下的订单应该是,什么时候⽤,什么时候查询。在查询订单时,订单所属的⽤户信息应该是随着订单⼀起查询出来。延迟加载就是在需要⽤到数据时才进⾏加载,不需要⽤到数据时就不加载数据。延迟加载也称懒加载。

2023-07-31 15:11:16 2663 66

原创 纯净版Win10系统重装教程(超详细)

本博客详细讲解纯净版Win10系统重装,步骤齐全,小白可实操。

2023-05-23 08:00:00 46613 83

原创 22个提升生产力的工具推荐,稳了

本文给大家推荐22个提高生产力的工具,总有一款符合你的需求。😄😄😄。

2023-05-09 16:19:34 40118 41

原创 Spring中的FactoryBean 和 BeanFactory、BeanPostProcessor 和BeanFactoryPostProcessor解析

如果要对具体的某个bean处理,可以通过⽅法参数判断,两个类型参数分别为Object和String,第⼀个参数是每个bean的实例,第⼆个参数是每个bean的name或者id属性的值。接⼝是容器的顶级接⼝,定义了容器的⼀些基础⾏为,负责⽣产和管理Bean的⼀个⼯⼚,具体使⽤它下⾯的⼦接⼝类型,⽐如ApplicationContext;该接⼝提供了两个⽅法,分别在Bean的初始化⽅法前和初始化⽅法后执⾏,具体这个初始化⽅法指的是什么⽅法,类似我们在定义bean时,定义了。

2023-02-27 10:01:53 6212 27

原创 SpringCloud Alibaba 之Nacos集群部署-高可用保证

当第一个节点(ip1)启动后,节点角色会变为 Candidate(参选者),ip1 节点在每一个任期开始时便会尝试向其他节点发出投票请求,征求自己能否成为 Leader(领导者)节点。在当前案例,因为 ip1 发起选举投票,但 ip2/ip3 两个节点不在线,尽管 ip1 会投自己一票,但在总 3 票中未过半数,因此无法成为 Leader。因为第一次选举没有产生 Leader,过段时间在下一个任期开始时,ip1 任期自增加 1,同时会再次向其他节点发起投票请求争取其他节点同意,直到同意票过半。

2023-02-22 10:02:51 15492 40

原创 Redis 中的 BitMaps(位图)命令详解

比如说,每当用户在某一天上线的时候,我们就使用 SETBIT ,以用户名作为 key ,将那天所代表的网站的上线日作为 offset 参数,并将这个 offset 上的为设置为 1。假设现在我们希望记录自己网站上的用户的上线频率,比如说,计算用户 A 上线了多少天,用户 B 上线了多少天,诸如此类,以此作为数据,从而决定让哪些用户参加 beta 测试等活动——这个模式可以使用SETBIT和BITCOUNT来实现。Bitmaps本身不是一种数据类型, 实际上它就是字符串,但是它可以对字符串的位进行操作。

2022-12-24 21:54:14 4445 48

原创 CSDN是怎么实现用户签到,统计签到次数,连续签到天数等功能微服务的

它是由一组bit位组成的,每个bit位对应0和1两个状态,虽然内部还是采用String类型存储,但Redis提供了一些指令用于直接操作位图,可以把它看作是一个bit数组,数组的下标就是偏移量。位图的每一位代表一天的签到,1表示已签,0表示未签。如果这样存数据的话,对于用户量比较大的应用,数据库可能就扛不住,比如1000W用户,一天一条,那么一个月就是3亿数据,这是非常庞大的,因此使用。可以看到当前登陆用户在2,4,6,8,17,19,20,21,22号9天都进行了签到,当月总签到天数为9天,连续签到4天。

2022-12-22 11:16:03 13104 38

原创 Redis解决秒杀微服务抢购代金券超卖和同一个用户多次抢购

上图就是redission官方网站首页。首页可以看出来,Redisson可以实现很多东西,在Redis的基础上,Redisson做了超多的封装,我们看一下,例如说Spring Cache,TomcatSession,Spring Session,可排序的Set,还有呢Sortedsort,下面还有各种队列,包括这种双端。

2022-12-01 07:30:00 5867 87

原创 秒杀微服务实现抢购代金券功能

现在日常购物或者餐饮消费,商家经常会有推出代金券功能,有些时候代金券的数量不多是需要抢购的,那么怎么设计可以保证代金券的消耗量和秒杀到的用户保持一致呢?怎么设计可以保证一个用户只能秒杀到一张代金券呢?秒杀场景有以下几个特点:秒杀场景的应对,一般要从以下几个方面进行处理,如下:本文以抢购代金券为例,来进行数据库表的设计。抢购活动表订单表创建秒杀服务pom依赖引入相关依赖如下:配置文件关系型数据库实现代金券秒杀相关实体引入抢购代金券活动信息全局异常处理添加代金券秒杀活动代金券活

2022-11-27 11:31:51 8275 107

原创 猿创征文|低代码开发15个高效开源项目推荐

低代码开发平台(LCDP)是无需编码(0代码)或通过少量代码就可以快速生成应用程序的开发平台。通过可视化进行应用程序开发的方法,使具有不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程序。本文主要推荐15个优质的低代码开源项目。

2022-11-03 20:41:58 14232 109

原创 云原生中间件RocketMQ-核心原理之高可用机制

Zookeeper为分布式应用程序提供协调服务,Zookeeper的功能很强大,包括自动Master选举,RocketMQ的设计决定了它不需要进行Master选举,用不到这些复杂的功能,只需要一个轻量级的元数据服务器就足够了。中间件对稳定性要求很高,RocketMQ的NameServer只有很少的代码,容易维护,所以不需要再依赖另一个中间件,从而减少整体维护成本。本文内容到此结束了,如有错误❌疑问💬欢迎各位指出。主页共饮一杯无的博客汇总👨‍💻保持热爱,奔赴下一场山海。🏃🏃🏃。

2022-09-04 21:52:29 8167 70

原创 云原生中间件RocketMQ-核心原理之同步_异步刷盘,同步_异步复制解析

发送时,Producer将不同topic的所有消息都会顺序写入Commit Log中,Broker端的后台服务线程—ReputMessageService不停地分发请求并异步构建ConsumeQueue(逻辑消费队列)和IndexFile(索引文件)数据,不停的轮询,将当前的consumeQueue中的offSet和commitLog中的offSet进行对比,将多出来的offSet进行解析,然后put到consumeQueue中的MapedFile中。的触发写磁盘动作,会明显降低性能。...

2022-08-31 10:07:39 7806 32

原创 26个开发者常用必备网站汇总推荐

本文给大家推荐一些程序员经常使用的网站,也是我经常上的一些网站。

2022-08-17 16:44:20 87098 53

原创 职场人一起进阶吧(内附技术人进阶路径、Java开源项目完整推荐等)

尽可能的选择朝阳产业,因为个人感觉大多数人的选择是大于努力的,选对了行业能让你事半功倍,就像雷军说的,在风口上猪都能飞上天呢😅。他山之石,可以攻玉。选好大树(公司、团队、leader、big old),毕竟大树底下好乘凉,虚心请教互相学习,多沟通多交流。沟通产生价值,技术人永远不要羞于表达自己的观点,你也需要具备独立思考的能力。做一个可靠的人。提高自己的能力,勇于挑战自己,在职场中,很多时候都是双向选择题,同样的东西你比别人做出来更可靠,更稳定,自然大家对你的信任度会提高。珍惜时间,养成持续学习的习.

2022-06-27 10:10:39 24512 63

原创 Java 诊断工具 Arthas 常见命令使用和实战(排查函数调用异常、热更新、调用方法函数、查看堆栈调用等)

Java 诊断工具 Arthas 常见命令使用和实战(排查函数调用异常、热更新、调用方法函数、查看堆栈调用等)

2022-06-17 13:17:04 24154 8

原创 Windows常用快捷键和常用的cmd命令(亲测用了办公效率提升明显)

Widows常用快捷键常用的运行窗口命令大全常用的cmd命令

2022-05-31 13:46:25 90804 63

原创 23种设计模式汇总概述

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。

2022-05-14 14:22:17 30249 9

原创 Redis相关知识汇总(下载安装、Redis常见数据类型、持久化、命令和客户端操作)

一文入门Redis(下载安装、Redis常见数据类型、持久化、命令和客户端操作)

2022-05-10 06:30:00 31415 1

原创 常见的http请求参数和响应参数,前后端交互参数说明

前后端交互请求头响应头和提交和回执参数说明。

2022-05-05 06:00:00 22617 1

原创 最新Java知识汇总(持续更新)

不积跬步无以至千里,本人从事Java开发多年,通过记录分享的形式,记录自己从事编程的一些心路历程和技术总结,希望能结交更多志同道合的朋友,个人见识有限,难免会有疏忽和错误之处,还望各位大佬能够指点迷津,感激不尽。本文整理的Java知识汇总主要包括Java基础、Java进阶、数据库、JVM、消息队列、缓存、微服务与分布式、Java面试系列、高并发、数据结构与算法、计算机网络、开发工具、搜索引擎、大数据、团队管理、运维等。包含一个Java开发工程师所需的绝大多数知识。相信只要勤奋学习,每天进步一点点,各位大佬

2022-04-10 22:57:28 17811 14

原创 一文学会日常操作Git(环境配置、初始化、本地仓库和远程仓库操作和分支操作)

环境配置当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息设置用户信息git config --global user.name “helloMrZhan”git config --global user.email "1187625098@qq.com "查看配置信息git config --listgit config user.name通过上面的命令设置的信息会保存在~/.gitconfig文件中

2022-03-22 11:31:22 20398 2

原创 Linux常用指令(命令)超级无敌全合集加图文说明

指令与选项什么是Linux的指令?指在Linux终端(命令行)中输入的内容就称之为指令。一个完整的指令的标准格式:Linux通用的格式#指令主体(空格) [选项](空格) [操作对象]一个指令可以包含多个选项操作对象也可以是多个​例如:需要让张三同学帮忙去楼下小卖铺买一瓶农夫山泉水和清风餐巾纸,在这个指令中“买东西”是指令的主体,买的水和餐巾纸是操作的对象,农夫山泉、清风是操作的选项。基础指令(重点)1、ls指令含义:ls (list)用法1:#ls含义:列出当前工作目录下的所有文

2022-01-05 13:20:11 47732 1

原创 Spring MVC 之MVC 体系结构、什么是SpringMVC

MVC 体系结构三层架构MVC设计模式Spring MVC 是什么?扩展知识Spring模块Data Access/Integration(数据访问/集成)Web(网络层)AOP(面向切面)Messaging(消息传送)Core Container(核心容器)Test(测试层)Spring的7大优点。

2023-09-06 13:15:50 2852 44

原创 MyBatis源码剖析之Mapper代理方式细节

MyBatis是一个流行的Java持久层框架,它提供了多种方式来执行数据库操作,其中之一就是通过Mapper代理方式。通过Mapper代理方式,开发者可以编写接口,然后MyBatis会动态地生成接口的实现类,从而避免了繁琐的SQL映射配置。具体代码如下:思考⼀个问题,通常的Mapper接⼝我们都没有实现的⽅法却可以使⽤,是为什么呢?是中的⼀个属性,它内部维护⼀个HashMap⽤于存放mapper接⼝的⼯⼚类,每个接⼝对应⼀个⼯⼚类。mappers中可以配置接⼝的包路径,或者某个具体的接⼝类。当解析。

2023-08-07 10:11:32 4380 78

原创 MyBatis源码剖析之二级缓存细节

MyBatis是一个流行的Java持久化框架,它提供了许多功能,包括支持一级缓存和二级缓存。一级缓存是默认开启的,它是在SqlSession层面的缓存。在同一个SqlSession中,如果执行了相同的SQL语句,那么第二次执行将从缓存中获取结果,而不是再次查询数据库。一级缓存是SqlSession级别的,当SqlSession被关闭时,缓存也将被清空。二级缓存是在Mapper级别的缓存,它可以跨越多个SqlSession。

2023-07-27 13:43:30 3151 47

原创 MyBatis插件原理探究和自定义插件实现

⼀般情况下,开源框架都会提供插件或其他形式的拓展点,供开发者⾃⾏拓展。这样的好处是显⽽易⻅的,⼀是增加了框架的灵活性。⼆是开发者可以结合实际需求,对框架进⾏拓展,使其能够更好的⼯作。以MyBatis为例,我们可基于MyBati s插件机制实现分⻚、分表,监控等功能。由于插件和业务⽆关,业务也⽆法感知插件的存在。因此可以⽆感植⼊插件,在⽆形中增强功能。

2023-07-24 10:40:19 3412 55

原创 程序员必知必会算法简述

一个程序员一生中可能会邂逅各种各样的算法,但总有那么几种,是作为一个程序员一定会遇见且大概率需要掌握的算法。今天就来聊聊这些十分重要的“必抓!”算法吧~

2023-07-18 08:00:00 1962 41

原创 奥特曼与钢铁侠【InsCode Stable Diffusion美图活动一期】

InsCode 是一个一站式的软件开发服务平台,从开发-部署-运维-运营,都可以在 InsCode 轻松完成。InsCode 的 Ins 是 Inspiration,意思是创作、寻找有灵感的代码。Stable Diffusion是文图生成模型,也可以理解成是AI动画生成工具。

2023-07-14 13:11:42 6326 34

原创 Linux之Shell进阶(变量和条件判定语句)

变量,先定义后使用。定义形如:hello=“hello 666”使用形如:echo $hello变量就是由2部分组成,一个是变量名(左边),另外一部分是变量的值(右边),类似于Java中变量的定义,只不过Java中的变量还有个变量类型。变量名和变量值是什么关系??变量名和变量值是使用和被使用关系;我们的变量名来使用变量值;在使用变量的时候一定需要在变量名前面添加一个符号,该要求在其他语言中也存在的(例如php)。变量名的规范注意,变量名后面的等号左右不能有空格。

2023-07-12 13:12:22 5935 47

原创 Linux之Shell基础入门

什么是shell?Shell(外壳) 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。什么是脚本?脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。JavaScript(JS,前端),VBScript,ASP,JSP,PHP(后端),SQL(数据库操作语言),Perl,Shell。

2023-07-07 10:19:17 2613 32

原创 Linux的权限管理操作(权限设置chmod、属主chown与所组设置chgrp)

总述:Linux系统一般将文件可存/取访问的身份分为3个类别:owner(所有者)、group(组)、others(其他),且3种身份各有read(读)、write(写)、execute(执行)等权限。什么是权限?在多用户(可以不同时)计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权力,像是文件夹、特定系统指令的使用或存储量的限制。** 对于文件夹来说,读权限影响用户是否能够列出目录结构**** 对于文件来说,读权限影响用户是否可以查看文件内容**

2023-07-02 14:14:38 4534 51

原创 Spring之BeanFactory与ApplicationContext区别、实例化Bean的三种⽅式、延迟加载(lazy-Init )

如果⼀个设置了⽴即加载的 bean1,引⽤了⼀个延迟加载的 bean2 ,那么 bean1 在容器启动时被实例化,⽽ bean2 由于被 bean1 引⽤,所以也被实例化,这种情况也符合延时加载的 bean 在第⼀次调⽤时才被实例化的规则。此种⽅式和上⾯静态⽅法创建其实类似,区别是⽤于获取对象的⽅法不再是static修饰的了,⽽是类中的⼀ 个普通⽅法。此种⽅式⽐静态⽅法创建的使⽤⼏率要⾼⼀些。在早期开发的项⽬中,⼯⼚类中的⽅法有可能是静态的,也有可能是⾮静态⽅法,当是⾮静态⽅法时,即可采⽤下⾯的配置⽅式。

2023-06-27 11:15:04 5530 39

原创 Linux发展史和Linux系统安装

虚拟机,有些时候想模拟出一个真实的电脑环境,碍于使用真机安装代价太大,因此而诞生的一款可以模拟操作系统运行的软件。虚拟机目前有2个比较有名的产品:vmware出品的vmware workstation、oracle 出品的virtual Box。

2023-06-25 12:51:38 4875 29

原创 Spring核心思想之IOC和AOP

IoC Inversion of Control (控制反转/反转控制),注意它是⼀个技术思想,不是⼀个技术实现。描述的事情:Java开发领域对象的创建,管理的问题传统开发⽅式:⽐如类A依赖于类B,往往会在类A中new⼀个B的对象IoC思想下开发⽅式:我们不⽤⾃⼰去new对象了,⽽是由IoC容器(Spring框架)去帮助我们实例化对象并且管理它,我们需要使⽤哪个对象,去问IoC容器要即可。我们丧失了⼀个权利(创建、管理对象的权利),得到了⼀个福利(不⽤考虑对象的创建、管理等⼀系列事情)

2023-06-20 13:13:49 2481 39

原创 Spring之注解开发

Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率。

2023-06-16 14:12:16 5970 46

原创 Spring中的bean标签详解

实际开发中,Spring的配置内容非常多,这就导致Spring配置很繁杂且体积很大,所以,可以将部分配置拆解到其他配置文件中,而在Spring主配置文件通过import标签进行加载。其中引用数据类型,此处就不再赘述了,之前的操作都是对UserDao对象的引用进行注入的,下面将以set方法注入为例,演示普通数据类型和集合数据类型的注入。上面的操作,都是注入的引用Bean,除了对象的引用可以注入,普通数据类型,集合等都可以在容器中进行注入。对象创建:当应用加载,创建容器时,对象就被创建了。

2023-06-07 09:56:04 5265 22

常见的java面试笔试题汇总

常见的java面试笔试题汇总

2023-06-21

Web3.0前瞻研究报告(2022年)发布版

Web3.0前瞻研究报告(2022年)发布版

2022-11-15

rocketmq4.9.4源码包文件

rocketmq4.9.4源码包文件

2022-07-03

nacos-2.1.0源码包

nacos-2.1.0源码包

2022-06-21

RocketMQ使用手册

RocketMQ使用手册

2022-06-21

RocketMQ用户指南v3.2.4

RocketMQ用户指南v3.2.4

2022-06-21

ASCII码表.zip

ASCII码表

2021-12-13

2021typora-x64.zip

typora收费前版本,专业.md软件

2021-12-10

空空如也

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

TA关注的人

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