无奈何杨(wnhyang)

I will keep to fight

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


作为程序员,我们绝大多数场景需要根据业务需求来设计系统,开发后端接口,这些接口通常都是在设计阶段就确定了,但是还有一些场景需要实现支持的配置的接口,包含以下功能

1、可以配置接口url

这个通常在一些论坛博客类系统中比较常见,用于设置个人主页,但其实这个又是不同概念,个人主页通常是get请求,然后通过path索引用户主页。

2、可选择接口具体实现

流程引擎、规则引擎通常就可以实现

3、输入参数和输出参数可配置

应用场景包括数据收集等

前面乱讲一通,最终回归本题——可配置输入参数的接口如何设计?

AI的回答

以下是AI的回答——可配置输入参数的接口如何设计?

设计支持可配置输入参数的接口时,主要目标是保证接口的灵活性和易用性,同时兼顾健壮性和可维护性。以下是一个通用的设计策略:

阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


办公三件套,我想不会有人没用过吧,如果你还停留在简单编辑、套模版的的办公三件套时代,那只能说你真的out了!

这周因为一些工作上的需要,打开WPS创建并使用了一下智能表格,不用不知道,使用后属实是把我惊到了。

智能表格

特性:

  • 多人协作,这个功能其实不算是特性的,因为绝大多数表格都可以做到
  • 简单的在线数据库,高效的管理数据
  • 搭积木一样建应用,每个人都会用

接下来我会从模版和自己的实践上重点介绍后两点!

阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


前文提到很多次satoken的事件发布,使用的是观察者模式,这次就来探究一下,很简单的。

参考官网:全局侦听器

观察者模式

简介:观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。

sa-token-corecn.dev33.satoken.listener包下有

image
阅读全文 »

事件回顾

2月18日,节后第一天,我正在“努力工作”,转眼看到公众号推送的消息傅园慧包车被勒索!官方通报…

事情很简单,游泳运动员傅园慧在长白山包车被勒索加钱在微博求助。

1708482603293

微博发布不久马上引起网友的关注,果然大家节后都在认真上班的。

不只是网友,相关部门响应的也很及时,吉林文旅马上就介入,不出2个小时问题就已经解决。看看这效率!!!司机被罚3万元!官方通报“傅园慧包车被勒索”处罚结果

1708482603223

紧接着“长白山发布”官微发布《长白山严厉打击非法营运等行为坚决维护每一名游客的合法权益》。

1708346918648
阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


声明

本篇文章纯粹抛砖引玉!

需求说明

开门见山,业务背景直接跳过。

类比支付宝会员积分,支付宝APP-我的-支付宝会员。

支付宝会员-XXX积分-积分规则,可以看到具体的积分规则,本篇文章类比于此积分业务场景,做简单的设计。

积分说明

积分不具有货币或现金价值,不可兑现,不可转让。用户可以通过支付、账户服务、金融理财和积分奖励活动等方式来获取积分。

积分可以兑换各类权益、参与各种积分活动等,具体以权益兑换及活动页面展示为准。

积分领取规则

积分发放后,用户可前往“我的”-“支付宝会员”,点击领取积分球,或者在支付成功页面、服务消息提醒、账单点击领取,积分方可到账。积分自产生之时起,领取有效期7天(168小时),逾期不领则作废,不予补发。

阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


工欲善其事,必先利其器。关于开发者IDEIntegrated Development Environment),我们熟知IDEAPyCharmGoLandWebStorm这些IDE都属于同一家公司的产品,那就是JetBrains。这些IDE有多好用就不用我再吹了。

废话不多讲,直接来说如何申请JetBrains全家桶License

官网:https://www.jetbrains.com.cn

1706705875038
阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


继续上文Sa-Token登录pre,有了前面的基础,就可以完整的了解satoken的登录流程了。

项目启动

1706270541534

可以看到satoken的一些配置和组件都已经注入,这个日志是怎么做的?下次可以讲一下,使用的是观察者模式。

login

一开始我还想直接从源码角度来的,发现不太合适,还是结合项目debug吧!

前面业务登录直接过,到satoken登录。

阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


原本标题是:“Sa-Token登录详解”,写着写着,发现字数兜不住了,无奈还是拆开吧😂

前文讲了Sa-Token组件介绍,基本上重要的satoken组件都过了一遍,最后也简单说明了一下组件注册管理机制。本文就satoken登录前必须了解的进行说明。

环境声明:

Sa-Token官网,版本1.37.0

依赖:

sa-token-spring-boot-starter

sa-token-redisson-jackson

以上环境表示本次登录详解针对的是普通登录(非SSOOAuth场景),集成redisson存储satoken数据。

登录应该如何设计

如果让我们来设计权限认证框架,或是说,让我们对使用过的权限认证框架进行抽象,使之能面对多种不同的登录鉴权场景,我们应该如何设计?

已知我登录送的用户id是1,下面这张图展示的是satoken在一次登录成功后在redis中产生的k-v数据。

登录成功后redis的数据
阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


前言

借用AI回答“图床是什么?”

图床是一种网络服务,它提供在线存储图片的空间,用户可以将自己的图片上传到图床服务器上,并获取该图片的网络链接(URL)。这个链接可以直接在网页、论坛、博客、社交媒体等地方使用,当访问者打开含有该链接的页面时,浏览器会从图床服务器加载图片并显示在对应位置。通过使用图床,用户可以减轻自己网站服务器的存储和带宽压力,同时提高内容加载速度,尤其是对于那些希望快速展示大量图片但自身服务器资源有限的情况。

图床通常具有以下特点:

  • 提供上传接口:可以通过网页端、客户端工具或API进行图片上传。
  • 链接生成与管理:上传成功后自动生成可公开访问的链接,有的还支持防盗链、链接有效期等功能。
  • 存储空间大小限制:免费图床可能有存储空间或流量的限制,付费图床则通常提供更多存储和更快的访问速度。
  • 可能提供的额外服务:如缩略图生成、图片处理(裁剪、压缩等)、CDN加速以优化全球访问速度等。

常见的图床服务商包括但不限于新浪图床、SM.MS、Imgur、七牛云、腾讯云COS、阿里云OSS、又拍云等。

对于我而言,使用图床的最大目的就是应用于个人博客。对于个人需求不大的,且几乎无商业性质的,诉求还是希望是免费、简单、稳定的。下面就此要求介绍和使用PicX图床。

阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


前文讲了Sa-Token介绍与SpringBoot环境下使用,但是satoken最重要的登录鉴权直接略过了,那这篇文章就开讲,😂当然不是啦。看标题就知道这次要讲的是satoken组件,为什么这么安排呢,是因为我在细致了解satoken源码后,还是非常想把satoken讲的比较清楚细致的,包含其中一些设计模式的使用、函数式接口的应用、组件注册的方法等,而要讲好这些,satoken的组件一定要讲一下吧,废话不多说了,下面开始。

必要声明:文章基于Sa-Token,版本1.37.0

satoken项目结构

下载源码

1
git clone https://github.com/dromara/Sa-Token.git

项目结构介绍

项目结构组织如下,结构还是相当清晰明了的。我也不可能把所有工程代码详细都讲一下,只能根据satoken最重要的模块挑一部分细致讲一下。

阅读全文 »
0%