项目
文章平均质量分 93
用于项目的整理
哗哗的世界
点点关注,共同进步
展开
-
网页使用之如何返回json/xml
后端返回json数据给前端进行渲染的方式比较熟悉,至于返回html页面,返回xml的方式接触逐渐减少,来在项目中熟悉这一点。原创 2024-04-25 21:50:47 · 868 阅读 · 0 评论 -
请求参数解析
请求参数想必是很熟悉的,不过还是有许多的需要注意的。以下问题是否注意过?下面结合项目详解一下。如ReqRecordFilter中就对请求参数进行了解析,输出到req-log中。再比如 BodyReaderHttpServletRequestWrapper会对请求参数的流进行封装,避免请求因为i日志的打印提前消耗掉。下面,从get请求参数解析说起。原创 2024-04-22 22:12:55 · 849 阅读 · 0 评论 -
Spring Boot 整合 RabbitMQ 实现延迟消息
Fanout模式不需要处理路由键(所以我们在 sendBroadcast 接口中,convertAndSend 方法中传递的 routingKey 是空的),我们只需要简单的将队列绑定到exchange上,发送到exchange的每一个消息都会被转发到与该exchange绑定的所有队列上。因为 TCP 连接是比较昂贵的,新建需要三次握手,销毁需要四次挥手,所以如果每个线程在想 RabbitMQ 服务端发送/接收消息的时候都新建一个 TCP 连接,就会非常的消耗资源,于是就有了信道。消息包括消息体和标签。原创 2024-04-04 15:28:59 · 1047 阅读 · 0 评论 -
Spring Boot 整合 OSS 实现文件上传
OSS 也就是 Object Storage Service,是阿里云提供的一套对象存储服务,国内的竞品还有七牛云的 Kodo和腾讯云的COS。第六步,打开 Apipost,测试 OSS 上传接口,注意参数选择文件,点击发送后可以看到服务器端返回的图片链接。第二步,如果是 OSS 新用户的话,可以享受 6 个月的新人专享优惠价,不过续费的时候还是会肉疼。第三步,进入 OSS 管理控制台,点击「Bucket 列表」,点击「创建 Bucket」。第一步,在 pom.xml 文件中添加 OSS 的依赖。原创 2024-04-04 13:46:29 · 436 阅读 · 0 评论 -
整合SpringSecurity+JWT实现登录认证
这个类的主要作用就是告诉 SpringSecurity 那些路径不需要拦截,除此之外的,都要进行 RestfulAccessDeniedHandler(登录校验)、RestAuthenticationEntryPoint(权限校验)和 JwtAuthenticationTokenFilter(JWT 过滤)。第二步,在需要登录认证的模块里添加 CodingmoreSecurityConfig 类,继承自 codingmore-security 模块中的 SecurityConfig 类。原创 2024-03-28 19:03:34 · 1228 阅读 · 0 评论 -
Spring Boot 使用过滤器、拦截器、监听器
作用过滤器(Filter):当有一堆请求,只希望符合预期的请求进来。拦截器(Interceptor):想要干涉预期的请求。监听器(Listener):想要监听这些请求具体做了什么。区别过滤器是在请求进入容器后,但还没有进入 Servlet 之前进行预处理的。如下图所示。拦截器是在请求进入控制器(Controller) 之前进行预处理的。原创 2024-03-27 19:01:21 · 1255 阅读 · 1 评论 -
如何实现图片上传至服务器
发表文章时上传文章封面时上传用户头像时通过编辑器的菜单添加图片。直接复制一张图片粘贴到编辑器中复制外部的图片链接(markdown格式),到编辑器中。导入MD文件到编辑器中(如果图片有连接时)。这四种方式都会出发图片上传功能(严格一点,后面两个还涉及到图片转链)后台的接口都是一样的,都调用的是ImageRestController,上传图片调用的是upload方法,请求参数为HttpServletRequest;转存图片链接调用的是save方法,参数为图片的外部链接。原创 2024-03-17 20:35:51 · 1336 阅读 · 0 评论 -
WEB三大组件之Filter
在很多项目中通常需要用到filter来实现用户身份识别,并将识别出来的用户信息,保存到ThreadLocal对应的上下文,这样在后续的请求链路中,在任何地方都可以直接获取当前的登录用户了。使用WebFilter注解,标注到实现自己额的过滤器上,有几个参数需要注意,其中urlPatterns最为常用,表示这个filter使用与那些url请求(默认场景下全部都被拦截)也可以在这一层做限流等)若判定通行,则进入Servlet逻辑,Servlet执行完毕后,又返回Filter,最后在返回给请求方。原创 2024-03-14 21:39:15 · 1214 阅读 · 0 评论 -
Redis实现计数统计
计数器大量应用于互联网上大大小小的项目,你可以在很多场景都能找到计数器的应用范畴,单纯以技术派项目为例,也有相当多的地方会有计数相关的诉求,比如文章带赞数评论数用户粉丝数......技术派中有两种查询计数相关的方案,一个是基于db中的操作记录进行实施,一种是基于redis的incr特性来实现计数器下面来看一下,redis的计数器是怎样用于技术派的技术场景的。原创 2024-03-13 17:16:57 · 1859 阅读 · 0 评论 -
技术派整合MyBatis-Plus
MyBatis-Plus支持自定义SQL语句,我们可以在接口中编写自定义SQL方法,并使用注解加自定义的SQL语句。/*** 根据三方唯一id进行查询* @return*/接口中定义了一个名为getByThirdAccountId的方法,它接收一个名为accountId的参数。该方法使用了@Select注解,这个注解用于编写自定义的SQL查询。原创 2024-03-13 17:13:57 · 1155 阅读 · 0 评论 -
公众号自动登录库表设计
我们将用户角色信息写入用户基本信息表中,没有单独抽出一张角色表来,然后进行映射,主要是因为这个系统逻辑相对清晰,没有太复杂的角色关系,因此采用了轻量级的设计方案。现在用户身份的方案很多,我们现在采用的是最基础的、历史最悠久的方案。用户首次登录之后,会在user表中插入一条数据,主要关注third_account_id这个字段,他记录的是微信开放平台返回的唯一用户id。我们在需要权限判定的接口上,添加上对应的权限要求,然后借助AOP来实现权限判断。现在采用的是,个人公众号的登录方式,很多的权限没有。原创 2024-03-12 17:33:36 · 420 阅读 · 0 评论 -
跨域问题解决方案
跨越对于前后端开发者来说,像一块狗皮膏药,无论是面试还是开发中,都会经常遇到。之所以出现跨域问题,是因为浏览器的同源策略,为了隔离潜在的恶意文件,为了防御五花八门的攻击,浏览器限制了从同一个源加载的文档或者脚本与来自另一个源的资源进行交互。同源策略要求,如果两个网页的协议、域名和端口都相同,他们才会认为是同源,否则就是跨域。同源策略是浏览器为了保护用户信息安全而实施的一种安全机制,可以防止恶意网站通过脚本窃取用户在其他网站上的数据,或者伪造用户身份执行一些操作。原创 2024-03-11 18:56:53 · 1076 阅读 · 0 评论 -
前后端分离项目,如何解决跨域问题?
跨域问题是前后端分离项目中非常常见的一个问题,举例来说,编程猫学习网站的前端服务跑在 8080 端口下,后端服务跑在 9002 端口下,那么前端在请求后端接口的时候就会出现跨域问题。403 Forbidden 是HTTP协议中的一个状态码(Status Code),意味着后端服务虽然成功解析了请求,但前端却没有访问该资源的权限。那怎么解决这个问题呢?原创 2024-03-10 22:25:38 · 1167 阅读 · 0 评论 -
Mysql/Redis缓存一致性
如何保证MySQL和Redis的缓存一致。从理论到实战。总结6种来感受一下。原创 2024-03-10 18:50:15 · 1147 阅读 · 0 评论 -
Redis实现用户活跃排行榜
在这里用户活跃度排行榜,主要是基于redis的zset数据结构来实现的,下面来看一下实例。原创 2024-03-09 13:58:15 · 1499 阅读 · 0 评论 -
JWT身份验证
在实际项目中一般会使用jwt鉴权方式。原创 2024-03-05 15:08:00 · 1274 阅读 · 0 评论 -
Session/Cookie身份验证识别
技术派当前的用户登录信息,主要借助最基础的session/cookie来实现的;现在虽然基本进入分布式session的时代了,但切实去看oauth,sso,jwt等各种登录方案之前,有必要学习最早的cookie/session,知道他的实现方式,然后再改造项目。原创 2024-03-05 09:15:15 · 635 阅读 · 0 评论 -
技术派微信公众号自动登录
项目的整个登录流程是基于微信公众号来实现的,整套登录流程的设计?自我实现这样一个流程可以怎样去做?接下来将以一个工作中的一个功能相对完成的需求作为驱动,来设计确立实时方案来介绍。原创 2024-03-03 16:21:55 · 983 阅读 · 0 评论 -
技术派数据库表自动初始化(学习)
比如库表创建的sql。原创 2024-02-28 21:01:57 · 709 阅读 · 0 评论 -
Spring Boot 整合 Redis 使用教程
作为开发者,相信大家都知道 Redis 的重要性。Redis 是使用 C 语言开发的一个高性能键值对数据库,是互联网技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」的首字母缩写,也就是「远程字典服务」。Redis 以超高的性能、完美的文档、简洁的源码著称,国内外很多大型互联网公司都在用,比如说阿里、腾讯、GitHub、Stack Overflow 等等。当然了,中小型公司也都在用。原创 2024-02-01 22:17:46 · 1846 阅读 · 1 评论 -
为 Spring Boot 项目配置 Logback 日志
也就是说,Logback 会在 classpath 路径下先寻找 logback-test.xml 文件,没有找到的话,寻找 logback.xml 文件,都找不到的话,就输出到控制台。由于 Spring Boot 的默认日志框架选用的 Logback,再加上 Log4j2 之前爆过严重的漏洞,所以我们这次就只关注 Logback。2)Spring Boot 的默认日志框架使用的是 Logback,启动编程喵项目的时候就可以看到 Logback 记录的日志了。查看字节码反编译后的文件就明白了。原创 2024-02-01 20:57:38 · 1343 阅读 · 0 评论 -
SpringBoot中处理校验逻辑的两种方式:Hibernate Validator+全局异常处理
实际开发中把两者结合在一起用,就可以弥补彼此的短板了,简单校验用 Hibernate Validator,复杂一点的逻辑校验,比如说需要数据库查询用全局异常处理来实现。原创 2024-01-31 22:38:18 · 1180 阅读 · 0 评论 -
SpringAop实现访问日志功能的添加
AOP 是 Spring 体系中非常重要的两个概念之一(另外一个是 IoC),今天这篇文章就来带大家通过实战的方式,在编程猫 SpringBoot 项目中使用 AOP 技术为 controller 层添加一个切面来实现接口访问的统一日志记录。原创 2024-01-31 22:24:56 · 1163 阅读 · 0 评论 -
简历技术栈redis点
缓存异常会面临的三个问题:缓存雪崩、击穿和穿透。其中,缓存雪崩和缓存击穿主要原因是数据不在缓存中,而导致大量请求访问了数据库,数据库压力骤增,容易引发一系列连锁反应,导致系统奔溃。不过,一旦数据被重新加载回缓存,应用又可以从缓存快速读取数据,不再继续访问数据库,数据库的压力也会瞬间降下来。因此,缓存雪崩和缓存击穿应对的方案比较类似。而缓存穿透主要原因是数据既不在缓存也不在数据库中。因此,缓存穿透与缓存雪崩、击穿应对的方案不太一样。原创 2023-11-19 14:45:58 · 180 阅读 · 0 评论 -
《学成在线》项目面试点-本人自用
课程名称、课程介绍、课程价格、课程图片、师资等信息继续延伸分析:这么多课程信息进行归类,方便用户编辑,分为课程基本信息、课程营销信息、课程师资等信息。业务流程:内容管理的业务由教学机构人员和平台的运营人员共同完成。教学机构人员的业务流程如下:1、登录教学机构。2、维护课程信息,添加一门课程需要编辑课程的基本信息、上传课程图片、课程营销信息、课程计划、上传课程视频、课程师资信息等内容。3、课程信息编辑完成,通过课程预览确认无误后提交课程审核。4、待运营人员对课程审核通过后方可进行课程发布。原创 2023-11-14 17:31:40 · 897 阅读 · 0 评论 -
智慧校园云端管理系统的设计和实现
对智慧校园管理系统的实现与总结原创 2023-11-06 21:34:45 · 811 阅读 · 1 评论