
项目DEMO
文章平均质量分 95
陈亦康
25届学生,热爱全栈,擅长后端开发. 欢迎来我的网站:http://chenyikang.xyz/ts-blog/#/index/explore
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
项目DEMO - 编写一个自定义校验注解
a)注解解释:这个注解表示使用该注解的注解应该包含在生成的Kotlin文档中。换句话说,当使用KDoc生成文档时,应用了 MustBeDocumented 的注解将会出现在文档中。这个注解定义了该注解是一个校验约束,并且指定了用来校验该注解的逻辑类。ListValueConstraintValidator::class 是一个自定义校验类(下文中详细讲)@Target这个注解定义了自定义注解可以应用的目标元素。可以是方法、字段、注解类型、构造函数、参数或类型使用。原创 2024-07-09 22:15:02 · 784 阅读 · 0 评论 -
阿里云 OSS - 开通到使用、服务端签名直传(前后端代码 + 效果演示)
传统的,我们有两种方式将图片上传到 OSS:a)前端请求 -> 后端服务器 -> OSS好处:在服务端上传,更加安全.坏处:给服务器带来压力.b)直接写在前端 js 代码中好处:效率高,不用给服务器带来额外压力.坏处:危险,用户直接可以看得到密钥信息.用户直接去服务器请求获取上传签名(账号密码生成的防伪签名,一般有过期时间),校验安全,服务器就返回该用户的防伪签名,然后用户就可以拿着签名和要上传的文件,通过表单直接上传到 OSS 中.原创 2024-07-07 18:38:03 · 2328 阅读 · 0 评论 -
多线程 - Thread 使用、线程状态、 CompletableFuture 异步编排
Ps:创建线程的时候,给线程起个名字还是很有必要的,目的就是为了方便程序员调试,一旦出问题,方便找到对应的代码,如果不手动起名,JVM 默认会起名为 thread-0、thread-1......操作系统管理这些线程的 PCB 的时候,是有多个链表的,调用了sleep ,就会把 PCB 移动另外一个“阻塞队列”(原先在“就绪队列”),当 sleep 时间到了 ,就会被移动到之前的就绪队列。Ps:直接调用 run 并不会创建线程,只是运行线程中的代码,调用 start 方法,才是创建了线程。原创 2023-04-27 21:09:37 · 1405 阅读 · 0 评论 -
SMS - 基于阿里云实现手机短信验证码登录(无需备案,非测试)
c)建议将短信服务专门到一个微服务中(专门用例处理调用第三方服务的接口),将来其他服务需要使用时,进行远程调用接口,解耦合(不要跟我张口闭口性能优化...).c)调整参数,点击发送请求,随后返回响应,显示 "ok",说明调试成功(此时你就可以看到发送到你手机上的验证码了).a)进入阿里云首页,然后从云市场中找到 “短信” (一定要从 云市场 去找短信服务,否则需要企业证明,备案)e)之后你就可以在控制台里搜索 “云市场”,找到你购买的服务。a)进入你购买的服务后,找到 API 接口,点击 “去调试”原创 2024-06-08 17:04:18 · 3750 阅读 · 0 评论 -
SpringCache 缓存 - @Cacheable、@CacheEvict、@CachePut、@Caching、CacheConfig 以及优劣分析
对于读多写少,一致性要求不高的数据,完全可以使用 SpringCache 来简化开发(只要缓存的数据有过期时间就可以).对于一致性要求高的场景,也没必要引入引入缓存,直接对数据库进行读写即可.特殊数据特殊处理.原创 2024-06-05 21:47:31 · 2129 阅读 · 0 评论 -
Redisson 分布式锁 - RLock、RReadWriteLock、RSemaphore、RCountDownLatch(配置、使用、原理)
目录前言Redisson 分布式锁环境配置1)版本说明2)依赖如下3)配置文件如下4)项目配置RLock1)使用方式2)加锁解释3)加锁时手动设置时间4)加锁时,到底要不要手动设置过期时间?(最佳实践)RReadWriteLock1)使用方式2)加锁原理RSemaphore1)使用方式2)信号原理RCountDownLatch1)使用方式2)原理解释前面讲过一篇 Redisson 分布式锁的底层原理,而这篇文章着重实战,因此对原理不清楚的,可以看看我之前的文章:http://t.csdnimg.cn/LU5原创 2024-06-04 22:55:51 · 1516 阅读 · 0 评论 -
项目DEMO - 树形菜单递归流查询、三级分类数据查询性能优化、Jmter 性能压测
asSequence 在处理大数据量时速度更快的原因主要是因为它采用了惰性求值策略,避免了不必要的多次迭代和中间集合的创建(原本的集合操作,每进行例如 filter 就会创建中间集合),从而减少了内存和处理时间的消耗。最直接的方法就是先从数据库中查到所有一级分类数据,然后再拿着每一个一级分类 id 去查对应的二级分类数据,最后拿着每个二级分类的 id 去查对应的三级分类数据.一开始就从数据库中拿到 分类表 中的所有数据,然后在内存中操作,过滤出每一个一级分类下的所有二级分类数据.......原创 2024-07-06 13:25:09 · 1169 阅读 · 0 评论