自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot2.7整合springSecurity

本着前人栽树,后人乘凉的这种思想,自己花了一些时间,用心的整理了一套springboot整合springsecurity的教程。该教程是基于前后端分离,会实现以下两种登录功能:用户名+密码+图片验证码手机号登录这两种方式可以同时存在,并且互不干预。本教程会通过阅读其内置的用户名密码登录的源码,以及结合官网文档来实现一些自定义的登录方式。注:教程主要是开发思路的讲解,其中涉及到的代码仅供参考,为了方便,很多地方忽略了一些细节打开源码可以看到是继承,因此我们就从它开始阅读。

2023-02-28 18:54:41 5594 14

原创 深度分析thinkphp类的自动加载

类的自动加载是框架中非常重要的特性,它允许你在**使用类时无需手动包含或引入对应的文件**。类的自动加载实现起来很简单,只需这样的一个函数`spl_autoload_register`就能实现。但框架都有各自的加载规范,并不是所有类都能被自动加载,因此这节内容大家还可以了解到`PSR-4`的自动加载规范,另外也可以弄明白通过composer引入进来的类是如何被加载的。

2024-04-11 13:34:04 431

原创 ubuntu、macOS、windown安装conda

https://docs.anaconda.com/free/anaconda/install/linux/

2024-03-05 11:07:28 329

原创 使用绝对路径替换python版本

【代码】使用绝对路径替换python版本。

2024-02-29 10:21:11 358 1

原创 最适合初学者的PHP集成环境!

如果你是一个`php`初学者,千万不要为了`php`的运行环境去浪费时间,这里我给大家推荐一款`php`的集成环境:**phpStudy**。它具备了`php`运行的三要素:`php`、`apache`、`mysql`,当然它具备的功能远不止这些。

2024-01-03 16:17:43 335

原创 thinkphp商城系统之商品模块表设计

商品模块是商城项目最核心的模块,也是最复杂的。如果说你能掌握这个模块,那对你来说绝对是获益匪浅,这模块会涉及到以下知识点:1. 聊聊电商领域中的`SPU`和`SKU`2. 表的设计,告诉你为什么要这么设计3. 复杂的查询,例如属性筛选

2023-12-12 15:07:07 985

原创 springboot利用easyexcel在浏览器中下载excel

项目中操作excel是一种很常用的功能,比如下载一份excel的报价单。这篇文章会介绍一款excel的处理工具以及导出遇到的三个常见异常(之前遇到一个这样的需求:后台管理页面,点击下载按钮,下载一份excel格式的报价清单是不是让人头疼?别怕,往下看,很简单~

2023-12-11 17:05:04 1497

原创 springboot监听器模式源码精讲

很多时候我们看源码的时候看不下去,其中一个原因是系统往往使用了许多设计模式,如果你不清楚这些设计模式,这无疑增加了你阅读源码的难度。`springboot`中就大量使用了设计模式,本文主要介绍其中的一种**监听器模式**,这是观察者模式中的一种。

2023-12-02 11:46:57 928

原创 Thinkphp-商城项目之oss文件上传及web端直传

一般商城网站都会把文件上传到第三方云,例如阿里云(oss),腾讯云(cos),当然如果公司有足够的实力,可以自己部署一台文件服务器,用于文件的保存。

2023-11-20 19:54:10 375

原创 实力进阶,教你使用thinkphp6开发一款商城系统

本教程打算以一个商城项目为例,会实现后台权限管理、会员管理、商品管理、商品团购、抢购……反正是一些常用的功能都给它实现了。本教程不同于网上的一些视频教程,只是为了实现而实现,说真的网上的一些教程,都是按部就班的实现功能,很少会提及为什么要这样做,这样做的好处是啥,更不用说会踩到什么坑了,因此有些人自学了,效果也好不到哪去。在这个教程中模块与功能的代码实现是次要的,更重要的是我们是如何去规划、设计这些模块,我们要站在一个架构师的角度实现我们的系统。

2023-11-18 14:02:41 888

原创 springboot利用redis过期事件处理过期订单

在开发中我们经常会遇到这样的业务需求,某一条数据需要在xxx时间后处理,比如说未支付的订单,30分钟后过期。能够实现这一功能的技术有很多,但需要你根据系统的大小、业务的量的大小以及公司给到该项目的资源而决定。比如说这是一个大商城,开始之初就已经部署了rabbitmq,那毫无疑问可以使用延时队列实现这一功能。如果说没有提供mq,一般情况下我们就定时轮询订单表了,这是非常最简单的一种实现方式。如果说你怕数据库压力大,那不妨可以选择redis。这篇文章介绍的就是如何利用redis处理过期事件。

2023-11-16 13:57:22 458

原创 超级简单的springboot整合springsecurity oauth2第三方登录

springboot整合进行第三方登录,例如qq、微信、微博。网上一堆教程,并且很多都是旧版本的,篇幅又长,哔哩吧啦一大堆,就算你搞下来了,等下次版本升级或变更一下,你又不知道怎么改了。这篇文章主要是分享一下我自己是如何实现第三方登录的,其实很简单~~~

2023-11-09 11:46:48 1074

原创 springboot缓存篇之内置缓存

前面我们讲了mybatis的一级缓存和二级缓存,这种缓存是基于持久层的缓存,存在很大的局限性。这篇文章主要分享一下另外的一种缓存方式,springboot的内置缓存,看看内置缓存的用法和它的优劣。

2023-10-24 14:27:06 595

原创 springboot缓存篇之mybatis一级缓存和二级缓存

相信很多人都用过mybatis,这篇文章主要是介绍mybatis的缓存,了解一下mybatis缓存是如何实现,以及它在实际中的应用。

2023-10-21 16:17:53 1048 1

原创 绝对详细的MyBatis代码生成器讲解

在springboot工程中如果使用mybatis作为持久层框架,那必须知道如何自动生成 java 实体类、dao 层接口(mapper 接口)及mapper.xml文件,这样可以减少不必要的开发。

2023-10-18 13:39:08 897

原创 pom.xml中解决“vulnerable dependency maven:org.yaml:snakeyaml:1.33“警告问题

当我们引入依赖的时候,pom文件会有这样的提示,其大概的意思就是maven:org.yaml:snakeyaml:1.30"表示通过Maven引入了一个潜在的安全漏洞依赖项"org.yaml:snakeyaml:1.30"

2023-09-23 11:33:52 2258 2

原创 springboot线程池简单用法及配置解析

首先我们在内存中开启了5个核心线程,如果5个线程处理不过来,那么接下来的线程就会进入队列等,等到队列满了,就会开启最大线程,直到线程数达到了指定线程、队列数达到上限,才会抛出异常。因此我们在配置这些参数的时候,我们需要估计一下每个线程的处理时间,以及一段时间内产生的线程数,这样大概估计一下核心线程数,至于队列容量,主要是一个缓冲的作用和处理高峰期的线程请求。因此我们使用线程池处理业务的时候最好监控一下线程池的队列容量及活跃线程数,如果数量过高,我们就可以及时处理异常。

2023-09-19 18:19:36 317

原创 swiper+vide开发一款视频和图片切换的banner

功能简介:参考文档:https://3.swiper.com.cn/api/Loop/2014/1215/22.htmlhttps://gitcode.gitcode.host/docs-cn/video.js-docs-cn/index.html2.html代码去swiper官网找一个自己想要的效果,复制html及css这里css不重要,重要的是下面的js这段代码重点解释一下这里使用了onImagesReady这个回调函数, 这个函数的作用是:所有内置图像加载完成后执行为什么视频组件要在这个回调方

2023-08-31 19:15:02 170

原创 VMware之虚拟机安装-centos系统

正常情况下我们是在window做开发的,但某些情况下我们可能需要使用到多个系统,例如学习大数据,你可能需要在本地搭建一个集群,因此我们需要在一台机上安装多个操作系统。

2023-06-17 15:37:24 1444

原创 使用tinkphp6.1带你一步一步开发一个商城管理系统<后台会员模块>

后台会员的数据来源一般都是用户在网站进行注册而得到的,因此在讲后台管理模块时,会穿插讲一下会员的注册

2023-06-07 09:44:52 158

原创 thinkphp6.1实现前后端分离的图片验证码,就是这么简单~

thinkphp6.1提供的验证码插件是基于session,对于前后端分离的项目,并不能直接使用,但是我们可以间接使用它,而不用重新写一个插件。

2023-05-25 14:13:04 2269 8

原创 使用tinkphp6.1带你一步一步开发一个商城管理系统<会员管理模块>

thinkphp6.1开发一款商城系统,主要涉及到架构的设计、开发过程中的规范、常用的技术知识以及最重要的就是如何避坑。可以说是把自己的干货无私的奉献给大家,如果对你有用,请点个赞~

2023-05-23 14:54:46 536

原创 springboot统一返回值封装

如果后端提供的接口没有固定的返回格式,那么前端将会很痛苦。所以在项目中一般都会封装一个返回值类,以确保所有接口都返回固定的格式。这个返回值并没有一个标准的格式,不同公司、不同团队可能封装的不一样,下面推荐一种格式,也是使用比较多的一种格式。"code" : 2003 , "message" : "用户名或密码错误" , "data" : null }code:状态码, 由后端统一定义各种返回结果的状态码message:描述信息data:返回的数据,例如列表数据当然有些人觉得需要加上请求时间。

2023-05-13 17:58:40 3661

原创 Springboot整合Rocketmq系列教程

本教程是基于Springboot2.6.3整合Rocketmq5.0,其中涉及了Rocketmq的安装,消息的发送及消费的代码实现。本文不会对rocketmq的一些概念、原理,及注意事项进行讲解,因为官网已经写的很清楚,又有中文版,详细访问https://rocketmq.apache.org/zh/docs/quickStart/01quickstart。

2023-04-18 15:11:57 5528 6

原创 springcloud之nacos服务发现及配置中心

nacos配置中心与服务注册

2023-04-14 17:08:41 186

原创 Nacos客户端动态监听配置源码解析

了解监听器原理,掌握重点知识

2023-04-07 18:58:11 2048 2

原创 window下安装nacos

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

2023-03-29 14:41:10 3866 1

原创 从实战出发,自定义一个springboot starter

本教程是基于实战开发的,自定义一个存储相关的starter,主要是集成cos、oss等。教程里面不但详细讲解了starter开发的步骤和细节,同时对springBoot的一些注解做了详细的解释

2023-03-21 10:06:33 2773 2

原创 memcached内容分配及工作原理

从图片中得到的信息:1.内存分大、中、小三大块,可以理解为大中小三个仓库2.每个仓库里面又有许多的模块,可以理解为货架。每个货架里面又分许多小模块,可以理解为抽屉,这些抽屉大小都是一样的。3.例如现在有个90字节的数据,它会存在最小号的仓库4.如果这里空间用完了怎么办?这时memcached会启动内部清理机制,把不常用的内存模块释放掉,以供后面的使用...

2020-06-12 09:09:54 155

原创 如何防止短信接口被恶意调用

有人是这样做的:用户点击获取验证码时,前端跟后端都做了限制。比如说同个手机号两分钟内只能获取一次。这样的做法跟没限制一样,形同虚设。比如说攻击者随机生成几万个手机号,然后同一时间往这些手机号上发送信息有些人又加了图形验证码。这也是目前最常用的防护方式了,但也有可能被暴力破解,但难度有点大。最近有个项目,说了为了用户体验,发送验证前不要图形验证,所以想到的方法就是ip限制了。...

2019-05-15 15:15:03 905

原创 手机获取验证码插件

最近把手机验证码的前端部分写成了个插件,方便以后调用,分享出来给大家看看html:<form class="js-ajax-form" action="{:url('login')}" method="post"> <div class="item"> <input type="text" class="mobile" na...

2019-05-07 19:20:14 861

原创 thinkphp5下使用WebSocket

最近有个项目需求是这样的:软件端会向服务器发送请求,获取一些信息。然后对获取过来的信息进行处理,再返回信息的id方式一:软件端那边调用接口,一分钟请求一次。问题出现:如果有几万个人同时用软件,就会产生大量的http请求,导致负载过高。因此需求考虑到第二种方式。方式二:使用WebSocket,进行一次长连接,这样就减少了大量的请求。因为对于webscoket要求不高,因此就选择了Wo...

2019-05-06 10:19:50 16621 2

原创 PHP导出大量数据(csv)

如果想一次性导出大量数据如几十万,上百万,往往会出现两个问题:1.脚本执行超时2.php内存不够第一个问题很好解决:set_time_limit(0);设置为0时,表示不限制脚本的时间。但是不建议这样设置,一般会给个时间,比如一小时,半小时第二问题你可以设置php的内存,但是这种方式是不可取的,试想一下如果执行这个脚本占那么大内存,那么其他应用就会受影响。这里提供一种方法,就是...

2019-05-05 20:20:44 2500 3

空空如也

空空如也

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

TA关注的人

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