【实战】基于Vue3搭建的管理系统
引言
目前,主流的前端开发框架为Vue3+TypeScript。本文将以Vue3+TypeScript为基础,构建一个简单的管理系统,旨在帮助了解Vue3与Vue2之间的区别,熟悉Vue3的开发方式。
项目地址:xxx
搭建
前提环境
安装了 包管理器npm 与 脚本运行环境
node.js
下面两种创建方式推荐脚手架cli
cli方式
创建项目
1vue create z-self_front
选择手动创建 Manually select features,
回车---> 确认 , 空格---> 选择上
选择依赖,按下回车
选择3.x , 按下回车
按照下图,选择后,按下回车
等待项目创建成功
项目的基本结构
启动项目
1npm run serve
项目效果
vite方式
据说 vite
没有脚手架,router、vuex、axios、element-plus、eslint等全要自己手动一个个引入,还各种报错的问题.
参考
api管理
request/api.ts
1 ...
【并发】多线程+CyclicBarrier实现计算任务拆解
场景
假设有一个大的计算任务,需要对一个数组中的所有元素进行求和。我们可以将这个任务拆分成多个子任务,每个子任务负责求和一部分元素,最后将所有子任务的结果累加得到最终结果
CyclicBarrier
位于java.util.concurrent.CyclicBarrier
作用 : 它允许一组线程互相等待,直到到达某个公共屏障点 (Common Barrier
Point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时
CyclicBarrier 很有用。因为该 Barrier
在释放等待线程后可以重用,所以称它为循环( Cyclic ) 的 屏障( Barrier
) 。
构造方法
CyclicBarrier(int parties, Runnable
barrierAction)
创建一个新的
CyclicBarrier,它将在给定数量的参与者(线程)处于等待状态时启动,
并在启动 barrier 时执行给定的屏障操作,该操作由最后一个进入 barrier
的线程执行。
其他方法
barrier.await() ...
【JMeter】JMeter接口测试
概述
JMeter也称为“Apache
JMeter”,它是一个开源的,带有图形界面,基于Java的应用程序。它旨在分析和衡量Web应用程序和各种服务的性能和负载功能行为,用于分析性能指标
或者测试在高负载情况下服务器接口的处理能力
安装
JMeter官方下载地址
配置中文
JMeter
配置中文参考文章
运行
打开下载目录, 进入 apache-jmeter-5.5\bin\, 点击
jmeter.bat,启动界面
使用
创建线程组
新建测试计划->添加->线程(用户)->线程组
创建Http信息头管理器
点击线程组-> 添加 -> 配置元件 ->
Http信息头管理器
设置请求头参数: 如Cookie / jwt-token
根据具体后端去配置
结果树
点击线程组-> 添加-> 监听器 -> 结果树
执行完请求后查看
聚合报告
点击线程组-> 添加-> 监听器 -> 聚合报告
执行完请求后查看
HTTP请求
点击线 ...
【Forest】基于Forest的http客户端框架对接第三方
Forest
Forest
是一个开源的Java HTTP 客户端框架,它能够将
HTTP 的所有请求信息(包括 URL、Header 以及 Body 等信息)绑定到您自定义的
Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP
请求。
使用 Forest
就像使用类似 Dubbo 那样的 RPC 框架一样,只需要定义接口,调用接口即可,不必关心具体发送
HTTP 请求的细节。同时将 HTTP
请求信息与业务代码解耦,方便您统一管理大量 HTTP 的
URL、Header 等信息。而请求的调用方完全不必在意 HTTP 的具体内容,即使该
HTTP 请求信息发生变更,大多数情况也不需要修改调用发送请求的代码
官方网站:forest.dtflyx.com
Gitee托管仓库:gitee.com/dromara/for…
Github托管仓库:github.com/dromara/for…
引入
12345<dependency> <groupId>com.dtflys.forest</gr ...
关于多个关键字查询
业务场景
业务场景: 在一个列表页面中,对输入框
输入一个到多个关键字(以逗号隔开),
再根据这些关键字和多个字段匹配符合的数据
sql编写
msql的模糊查询是可以配合concat函数 一起使用的
123456select name,class_name,address from info_table where concat(name,class_name,address) like oncat('%','天','%')
关键字多个的情况,需要拼接多条,如下
123456789select name,class_name,address from info_table where concat(name,class_name,address) like oncat('%','天','%') or concat(name,class_name,address) like oncat('%','地' ...
【Annotation】自定义注解实现数据脱敏
数据脱敏
数据脱敏,指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。
需要进行数据脱敏的地方:如身份证号、手机号、卡号、客户号等个人信息
此处通过利用 springboot 自带的
jackson 自定义序列化实现。它的实现原理其实就是在json 进行序列化渲染给前端时,进行脱敏
导入hutool
12345<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.0</version></dependency>
现阶段版本Hutool支持的脱敏数据类型如下,基本覆盖了常见的敏感信息。
具体如:用户id
、中文姓名、身份证号、座机号、手机号、地址、电子邮件、密码、中国大陆车牌,包含普通车辆、新能源车辆、银行卡
测试
12345678910111213141516171819202122232 ...
【spring Cache】spring Cache+Redis缓存
Spring Cache
介绍
Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。
Spring
Cache提供了一层抽象,底层可以切换不同的cache实现(可以是redis....)。具体就是通过CacheManager接口来统一不同的缓荐技术。
CacheManager是Spring提供的各种缓存技术抽象接口。
常用注解
注解
说明
@EnableCaching
开启缓存注解功能
@Cacheable
在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据若没有数据,调用方法并将方法返回值放到缓存中
@CachePut
将方法的返回值放到缓存中
@CacheEvict
将一条或多条数据从缓存中删除
引入依赖
spring-boot-starter-web 中包含 spring-context, spring-context
中包含了spring Cache
1234<depende ...