安装① 安装插件,在博客根目录 [Blogroot] 下打开终端,运行以下指令: npm install hexo-butterfly-tag-plugins-plus-chinese --savenpm uninstall hexo-renderer-marked --savenpm install hexo-renderer-kramed --save ② 如果渲染出多余的 html 标签,可以尝试下面这个: npm uninstall hexo-renderer-kramed --savenpm install hexo-renderer-markdown-it --save ③ 添加配置信息 _config.yml 或 _config.butterfly.yml # tag-plugins-plus# see https://akilar.top/posts/615e2dec/tag_plugins: enable: true # 开关 priority: 5 #过滤器优先权 issues: false #issues标签开关 link: placeholder: /im ...
Java开发框架
未读Sa-Token 介绍Sa-Token 是一个轻量级的 Java 权限认证框架,专注于解决接口权限认证问题。它以简洁、高效和灵活为核心设计理念,适用于微服务架构以及单体应用的开发场景。 Sa-Token 提供了一套完整的权限认证解决方案,能够轻松实现用户登录、权限校验、会话管理等功能,并且与若依(RuoYi)框架有良好的集成支持。 一、Sa-Token 的核心功能 登录认证 支持多种登录方式:用户名密码登录、手机验证码登录、OAuth2 第三方登录等。 自动生成 Token,并将其存储在客户端(如 Cookie 或 LocalStorage)中。 权限校验 提供细粒度的权限控制,支持基于角色、菜单、按钮级别的权限验证。 可动态加载权限信息,适合复杂的业务场景。 会话管理 提供强大的会话管理功能,包括踢下线、多终端登录限制、Token 过期时间设置等。 支持分布式会话,在微服务架构中表现优异。 跨域支持 内置 CORS 跨域解决方案,简化前后端分离项目的开发流程。 高性能 Sa-Token 使用内存缓存技术存储 Token 和用户信息,性能优越,适合高并发场景。 扩 ...
一. 道之伊始宇宙初开之际,混沌之气笼罩着整个宇宙,一切模糊不清。 然后,盘古开天,女娲造人:日月乃出、星辰乃现,山川蜿蜒、江河奔流、生灵万物,欣欣向荣。此日月、星辰、山川、江河、生灵万物,谓之【对象】,皆随时间而化。 然而:日月之行、星汉灿烂、山川起伏、湖海汇聚,冥冥中有至理藏其中。名曰【道】,乃万物遵循之规律,亦谓之【函数】,它无问东西,亘古不变 作为设计宇宙洪荒的程序员 造日月、筑山川、划江河、开湖海、演化生灵万物、令其生生不息,则必用面向【对象】之手段 若定规则、求本源、追纯粹,论不变,则当选【函数】编程之思想 下面就让我们从【函数】开始。 什么是函数什么是函数呢?函数即规则 数学上: 例如: INPUT f(x) OUTPUT 1 ? 1 2 ? 4 3 ? 9 4 ? 16 5 ? 25 … … … $f(x) = x^2$ 是一种规律, input 按照此规律变化为 output 很多规律已经由人揭示,例如 $e = m \cdot c^2$ 程序设计中更可以自己去制定规律,一旦成为规则的制定者,你就是神 大道无情无 ...
环境搭建
未读概述服务注册与发现微服务与传统单体式应用架构最大区别就是强调软件模块的拆分。在单体架构下,一个应用系统的多个功能模块由于组织在一起在同一个应用进程内部署与运行,因此,模块之间直接通过方法调用即可完成对一次请求得响应。但在微服务系统中需要对一个应用系统根据其功能特点,按照一定粒度进行拆分后单独部署,以便实现模块内的高内聚,模块间的低耦合,实现整个微服务系统的高可扩展性。原来一次在一个应用内即可完成的请求处理,会出现跨进程跨主机的微服务调用,如何让这个服务之间能够互相发现像单体式应用一样提供统一对外的服务调用能力式微服务框架层面需要重点解决的核心问题之一。 在 Spring Cloud 生态中,采用了如下服务注册与发现模型,来实现微服务之间的相互发现与调用。 如上图所示,通过在微服务系统中引入一个叫做注册中心的组件,来作为协调者。其最简化的过程是,所有的微服务应用在启动过程中会将自身包含服务名称、主机 IP 地址和端口号等信息发送到注册中心中,然后上游的微服务在处理请求过程中,根据服务名称到注册中心查找对应服务的所有实例 IP 地址和端口号来进行服务调用,整个过程中如图中虚线所示。从而 ...
Git 教程 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 Git 与常用的版本控制工具 CVS ,Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持 Git 与 SVN 区别Git 不仅仅是个版本控制系统,它也是个内容管理系统,工作管理系统等 如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征 Git 与 SVN 区别点: Git 是分布式的,SVN 不是:这是 Git 和其他非分布式的版本控制系统,例如 SVN ,CVS 等,最核心的区别 Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 SVN ,CVS 等的文件夹里 Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另一个目录 Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺 ...
技术1.前端项目 采用 Vue3 + TS + ElementPlus 2.后端项目结构 采用插件化 + 扩展包形式 结构解耦 已于扩展 3.后端代码风格 严格遵守 Alibaba 规范与项目统一配置的代码格式化 4.分布式注册中心 Alibaba Nacos 5.分布式配置中心 Alibaba Nacos 6.服务网关 SpringCloud Gateway 7.负载均衡 SpringCloud Loadbalancer 8.RPC 远程调用 Apache Dubbo 3.x OpenFeign 9.分布式限流熔断 Alibaba Sentinel 10.分布式事务 Alibaba Seata 11.Web 容器 采用 Undertow 基于 XNIO 的高性能容器 12.权限认证 Sa-Token Spring Security 13.权限注解 Sa-Token Spring Security 14.关系型数据库 MySQL Oracle PostgreSQL SQLServer 使用异构切换(支持 mybatis-plus 支持的所有数据库) 15.缓 ...
Java
未读Java 架构师之路架构师的内功主要包括三部分:判断力、执行力、创新力,简单解释如下: 判断力:能够准确判断系统的复杂度在哪里,就像武侠高手一样,能够准确地看出对手的破绽和弱点。 执行力:能够使用合适的方案去解决复杂度问题,就像武侠高手一样,能选择合适的招式或者方法打败对手。 创新里:能够创造新的解决方案解决复杂度问题,就像武侠世界里,小一些的创新是创新招式,而武学宗师能够创立新的武学或者心法,例如张三丰创立太极拳一样。 因此,要成为一个优秀的架构师,就需要不断提升自己这几方面的内功,而者三方面的能力来源于 经验、视野、思考。 经验:设计的系统越多,系统越复杂,架构师的内功也就越强,不管是成功的架构,还是失败的架构,不管是踩坑的经验,还是填坑的经验,都将成为架构师内功的一部分。 视野:掌握的知识和技能越多、越深,架构师的内功也就越强,他山之石可以攻玉,站在巨人的肩膀上会看的更高更远。 思考:经验和视野都是外部输入,类似于我们吃的食物,但光吃还不行,还要消化,将其变为我们自己的营养,这就是思考的作用,思考能将部分经验和视野中的模式、判断、选择、技巧等提炼出来为我们所用,思考也能促 ...
1.快速入门安装 Docker : 1.1.部署 MySQL传统安装 MySQL : 搜索并下载MySQL安装包 上传至Linux环境 编译和配置环境 安装 Docker 安装 MySQL : docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ mysql 运行效果: MySQL 安装完毕,通过任意客户端工具即可连接 MySQL . 执行命令后,Docker 回去自动搜索并下载 MySQL ,然后自动运行 MySQL ,并不需要我们插手,十分便捷。 而且通过这种方式完全不需要考虑运行的操作系统环境,它不仅仅在 CentOS 系统,在 Ubuntu 系统,macOS系统,甚至是安装了 WSL 的 Windows 系统下,都可以使用这条命令来安装 MySQL 。 要知道,不同操作系统下其安装包、运行环境是都不相同的!如果是手动安装,必须手动解决安装包不同、环境不同的、配置不同的问题! 而使用 Docker,这些完全不用考虑。 ...
Redis安装说明大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。因此我们会基于Linux系统来安装Redis。 此处选择的Linux版本为CentOS 7. Redis的官方网站地址:https://redis.io/ 1.单机安装Redis1.1 安装Redis依赖Redis是基于C语言编写的,因此首先需要安装 Redis 所需要的 gcc 依赖: yum install -y gcc tcl 1.2上传安装包并解压然后将课前资料提供的 Redis 安装包上传到虚拟机的任意目录: 例如,我放到了/usr/local/src 目录: 解压缩: tar -xzf redis-6.2.6.tar.gz 解压后: 进入redis目录: cd redis-6.2.6 运行编译命令: make && make install 如果没有出错,应该就安装成功了。 默认的安装路径是在 /usr/local/bin目录下: 该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令。其中: redis-cli:是re ...
什么是虚拟机虚拟机是指软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算系统,在实体计算机中能够完成的工作,在虚拟机中都能够实现。 VMware 简介 简而言之,VMware(链接位于 ibm.com 外部)主要用于开发虚拟化软件。 虚拟化软件会在计算机硬件上创建一个抽象层,从而能够将单台计算机的硬件要素(处理器、内存、存储等)分成多个虚拟计算机(通常称为虚拟机 ( VM ))。 每个虚拟机都运行自己的操作系统 ( OS ),其行为就像一台独立的计算机,而实际上它只是在一部分底层计算机硬件上运行。 Ⅰ大概介绍VMware 虚拟机软件是一个虚拟 PC 软件,它可以让你在一台电脑上运行一个或多个操作系统。 Ⅱ 详细介绍VMware 是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware 可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。 VMware 下载Ⅰ 官网地址下载 VMware Worksta ...
Java开发框架
未读MybatisPlus简介在日常开发生活中,单表的 CRUD 功能代码重复度很高,也没什么难度,但是这部分代码的开发量往往却比较大,开发起来相当费时。 因此,目前企业中会使用一些组件来简化 CRUD 开发工作,而国内,使用最多的一个组件就是 MybatisPlus 。 官方网站如下: MybatisPlus 不仅仅可以简化单表操作,而且还对 Mybatis 进行了增强。可以让我们能够简单高效地进行开发。 我们需要掌握的内容如下: 能利用 MybatisPlus 实现基本的 CRUD 使用条件构造器构建查询和更新语句 掌握 MybatisPlus 中常用的注解 会使用 MybatisPlus 处理枚举类、JSON 类型字段 会使用 MybatisPlus 实现分页 快速入门创建一个 MybatisPlus 项目,并准备一些基础数据。 Ⅰ环境准备① 打开 IDEA 导入 MybatisPlus 项目 ② 打开 navicat 导入 mp.sql 文件 ③ 配置项目 JDK 版本 ④ 在 application.yml 文件中配置参数 spring: datasou ...
VSCode 是微软开发的跨平台免费源代码编辑器,支持 Windows、macOS 和 Linux。 在安装 VS Code 之前,请确保您的设备满足以下最低要求: 操作系统 最低要求 Windows Windows 7 64 位或更高版本 macOS macOS 10.11 El Capitan 或更高版本 Linux Ubuntu 16.04+, Debian 9+, Fedora 30+, CentOS 7+ VS Code 官方网站下载页面:https://code.visualstudio.com/Download。 Windows 系统注意下载正确的版本,如果系统账户是 Administrator,需要下载 System Installer 版本,如果系统账户是其它自定义账户,需要下载 User Installer 版本。 默认情况下访问 VS Code 官网 https://code.visualstudio.com/,页面会根据你的系统自动匹配安装包,比如我是 macOS,就会出现 Download for macOS 按钮: 在 W ...





