自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 收藏
  • 关注

原创 使用spring-boot-starter-validation实现入参校验

由于新增、更新、查询、删除都可以使用一个实体接受入参,而不同情况需要校验的情况也不同,比如,新增时不需要校验id必填,删除时需要校验id必填,分组可以理解成不同策略,不同分组下可以使用不同的校验规则@Data@NotNull(groups = {Insert.class, Update.class, Query.class},message = "name 不能为空")

2025-08-11 16:03:40 129

原创 1-越权-横向越权

横向越权就是:相同权限等级的用户,非法访问了本不该属于他的其他用户的私有资源或数据。

2025-08-08 15:28:28 108

原创 数据分页异步后台导出excel

下面根据如上设计列出具体方案(没有文件服务器,直接从后台服务下载)

2025-08-04 23:11:21 665

原创 4)SpringBoot-自定义注解控制权限

Target({ElementType.TYPE, ElementType.METHOD}) 表示允许在类和方法上使用该注解/*** 权限点*//*** 权限点描述*/关于aop可从这篇文章了解@Aspect@Component@Autowired// 定义切点,匹配所有带有@Permission注解的类和方法//环绕通知// 1. 获取类上的权限注解Class<?// 如果类上没有定义权限直接放行。

2025-07-31 11:05:34 182

原创 2-Vue3应用介绍

应用实例必须在调用了 .mount() 方法后才会渲染出来。我们传入 createApp 的对象实际上是一个组件,每个应用都需要一个“根组件”,其他组件将作为其子组件。如果你使用的是单文件组件,我们可以直接从另一个文件中导入根组件。

2025-07-17 20:38:00 259

原创 1-创建Vue3项目

这一指令将会安装并执行 create-vue,它是 Vue 官方的项目脚手架工具。命令执行完后将在指定目录创建一个名为 vue-project 的项目。VSCode 可安装 Vue-Official 插件协助开发。② 执行 create vue 指令创建 vue 应用。已安装 18.3 或更高版本的 Node.js。① 新建项目目录,使用 VSCode 打开。执行如下指令,下载项目依赖。使用如下指令运行项目。

2025-07-17 20:00:27 269

原创 1-开发工具VSCode安装

这里选择 System Installer 版本,这样所有用户都能用。

2025-07-17 15:58:53 230

原创 5-Nodejs-npm与第三方模块

‌npm‌:全称Node Package Manager,是Node.js生态中的包管理工具,用于安装、更新、发布和管理JavaScript模块依赖。‌‌npm随Node.js自动安装,无需单独配置。

2025-07-16 11:38:43 556

原创 4-Nodejs模块化

自定义模块是一种封装和组织代码的方式,使得应用可以更加模块化,易于维护和复用。自定义模块可以是一系列函数、变量、对象或者其他模块的集合,它们可以被其他文件导入和使用。下面是如何创建和使用自定义模块的基本步骤:① 创建自定义模块。

2025-07-15 22:47:18 272

原创 3-Nodejs-使用fs文件系统模块

fs 模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。

2025-07-15 21:47:28 182

原创 2-Nodejs运行JS代码

要注意的是,在nodejs环境中不能操作浏览器 DOM 对象相关的api,

2025-07-15 21:28:46 171

原创 1-Nodejs介绍与安装

在以往的认知中,JavaScript 通常嵌入在HTML中,由浏览器解析引擎解析执行,主要用于网页开发等web应用。Nodejs 是一个允许JavaScript运行在服务器端的平台,这意味着你可以在Node.js环境中脱离浏览器,直接运行JavaScript代码,无需通过浏览器。Node.js提供了许多内置模块,如fs(文件系统)、http(HTTP模块)等,允许开发者进行文件操作、网络编程等。

2025-07-15 17:47:00 323

原创 2-Git提交本地项目到远程仓库

新增远程仓库成功后复制远程仓库地址。

2025-07-11 15:20:02 232

原创 1-Git安装配置与远程仓库使用

在 Git 中添加 SSH Key 的主要作用是安全、方便地进行身份验证,让你无需每次都输入用户名和密码就能与远程 Git 仓库(如 GitHub, GitLab, Gitee, 自建 Git 服务器等)进行安全的通信。上述步骤执行完后会在提示的文件夹下生成公钥(id_rsa.pub)和私钥(id_rsa),这里涉及到非对称加密的知识,简而言之 明文+公钥 经过加密算法变成密文,密文+私钥经过解密算法变成明文,不做过多解释。在任意文件夹空白处右键,选择 Open Git Bash here,

2025-07-11 14:36:53 374

原创 5-Kafka-replication(副本机制)概念

生产环境推荐:分区数 = 消费者数量 × 1.5,副本数 ≥ 3,min.insync.replicas=2。如下:kafka集群有三台服务器,某个主题有2个分区和3个副本(一个Leader,两个Follower):Follower 可处理只读请求(需特殊配置)分区数决定并行度上限,副本数决定容灾能力。:Leader 故障秒级切换。:多副本冗余防数据丢失。参考:deepseek。

2025-07-08 13:57:24 303

原创 4-Kafka-partition(分区)概念

如下:有三台kafka集群,cnbook 主题有三个分区,这三个分区分别位于不同的 broker。

2025-07-08 10:33:15 483

原创 3-Kafka常用指令

删除 Topic 后需手动清理 Zookeeper 元数据(路径)及磁盘日志文件(log.dirs目录)。

2025-07-07 15:53:21 330

原创 1-Kafka介绍及常见应用场景

Apache Kafka 是一个开源的 分布式流处理平台,最初由 LinkedIn 开发,后捐赠给 Apache 软件基金会。它被设计用于高吞吐量、低延迟、可水平扩展地处理实时数据流。

2025-07-07 15:37:15 819

原创 2-jdk8环境下安装Kafka

第一步,进入目录 /usr/local/kafka/kafka_2.13-3.7.0/config。1)新建 kafka 目录,此处文件夹为 /usr/local。2)将压缩包上传到 /usr/local/kafka目录下。2)修改配置文件,配置server.properties。第二步,修改 server.properties 文件。备份 server.properties 文件。进入 kafka bin 目录。出现如下日志,说明启动成功。使用消费者来查看这些消息。执行如下命令使配置生效。

2025-07-04 11:59:59 335

原创 win10开启热点失败原因

5、右键WIN10的"以太网"网线连接,点击属性,进入共享设置,任意选择一个家庭网络连接,再点击“确定”退出;然后,再次进入共享设置,去掉勾选的“连接共享”选项,并“确定”退出。3、打开手机WIFI设置,搜索并连接在WIN10中所设置的移动热点名称;在Win10系统,设置并共享WIFI移动热点后,但是用手机(或其它网络设备)却无法链接,或者搜索不到网络,遇到这种问题该如何解决呢?6、在WIN10系统中,再次点击打开“移动热点”;豹5首创新能源车世界纪录。豹5首创新能源车世界纪录。

2024-05-09 00:02:45 1028 1

原创 一个草稿对对对

‘北京赛车’ order by item;= ‘北京赛车’ order by item。

2023-12-25 03:16:49 494

原创 对外接口签名生成方式

当某个系统对外部系统提供接口访问时,为提高接口请求安全性,往往会在接口访问时添加签名,当外部系统访问本系统签名验证成功时才能正常返回数据,一般接口提供方会与外部系统提前约定好,不同外部系统用 appKey 加以区分,并且不同 appKey 对应不同秘钥(secretKey)

2023-07-31 09:59:26 1102

原创 JDK8-2-流(3)- 流操作(2)

例如筛选每种类型菜肴中最高卡路里的菜肴。

2023-06-19 17:28:16 214

原创 JDK8-2-流(2)- 流操作

上篇中简单介绍了什么是流以及使用流的好处,本篇主要介绍流的操作类型以及如何操作。

2023-06-18 11:40:51 364

原创 JDK8-2-流(2.3)- 流操作-reduce (归约)

reduce 可以把一个流中的元素组合起来,例如可以计算一组数的总和。

2023-06-18 11:17:47 220

原创 JDK8-2-流(2.2)- 流操作-flatMap

flatMap (流的扁平化处理)

2023-06-16 11:45:39 281

原创 JDK8-2-流(2.1)- 流操作-distinct

注意:对象去重需要重写 equals 和 hashCode 方法(默认对象 equals 方法比较的是对象内存地址是否一致),由 distinct 内部具体实现类 java.util.stream.DistinctOps 可以看出这点。IDEA 如何自动生成 equals 和 hashCode 方法空白处右键选择 Generate 或者Alt + Ins 快捷键使用 filter 方法去重。

2023-06-15 12:08:08 277

原创 JDK8-2-流(1)-简介

流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现),可以把它们看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理,你无需写任何多线程代码!

2023-06-14 11:49:54 554

原创 JDK8-1-Lambda表达式(5)-复合 Lambda 表达式

Function<?super T,?@Override@Override相当于 Comparator.comparing 帮我们实例化一个 Comparator ,这个方法入参为 Functionreversed。

2023-06-10 17:19:58 791

原创 JDK8-1-Lambda表达式(4)-方法引用

下例中,date 为 Date 类型的对象,supplier 接收的 Lambda 表达式方法体中返回时间戳。

2023-06-09 13:50:11 85

原创 JDK8-1-Lambda表达式(3)-函数式接口

有且仅有一个抽象方法的接口称为函数式接口,中接口就是一个函数式接口,Java 8中引入的函数式接口定义在 java.util.function 包下。

2023-06-09 11:46:05 593

原创 JDK8-1-Lambda表达式(2)-方法传递(行为参数化)

Java 8 允许程序将方法作为参数传递,先看一个例子:以下,filterGreenApples ,filterHeavyApples 方法分别表示过滤出不同类型的苹果从代码中可以看出,filterGreenApples 与 filterHeavyApples 方法代码几乎一模一样,仅仅只有 if 条件中的代码有区别,既然这样为什么不可以将筛选的代码抽出,过滤的部分作为公共逻辑呢。

2023-06-07 17:25:10 1057

原创 JDK8-1-Lambda表达式(1)-简介

Lambda也称为匿名函数,是 JDK8 的新特性之一,它允许程序将方法作为值传递(类似JS中的回调方法),相比 JDK8 之前的代码,Lambda语法更简洁。::是Java 8中的方法引用语法(即“把这个方法作为值”)将其传给listFiles方法。

2023-06-07 16:44:57 84

原创 2-Zookeeper单机版安装

本文介绍的是 Linux 系统下 Zookeeper 安装方式。

2023-05-14 17:07:04 472

原创 1-Zookeeper简介

ZooKeeper 是分布式应用程序的分布式开源协调服务。它公开了一组简单的原语,分布式应用程序可以基于这些原语实现更高级别的同步、配置维护、组和命名服务。它被设计为易于编程,并使用一种数据模型,该模型以熟悉的文件系统目录树结构为风格。它在 Java 中运行,并具有 Java 和 C 的绑定。众所周知,协调服务很难做好。它们特别容易出现竞争条件和死锁等错误。ZooKeeper 背后的动机是减轻分布式应用程序从头开始实现协调服务的责任。设计目标。

2023-05-14 15:51:24 511

原创 1-Linux环境安装JDK

本文中Linux环境为 CentOS Linux 7。

2023-05-13 18:41:11 567

原创 JavaSE-线程池(5)- ThreadPoolExecutor常用方法

ExecutorService 接口中定义的方法,给定一组任务,在所有任务执行完成时返回一个 Futures 列表,其中包含它们的状态和结果。

2023-02-27 16:51:08 392

原创 JavaSE-线程池(6)- 建议使用的方式

虽然JDK Executors 工具类提供了,但一般建议自定义线程池参数,下面是阿里巴巴开发手册给出的理由:另外Spring也提供了线程池的实现,比如 ThreadPoolExecutor。

2023-02-19 21:52:20 1124

原创 JavaSE-线程池(4)- JDK Executors提供的创建线程池的方法

该线程池只有一个线程处理任务如下例:有8个任务被该线程池处理每个任务都是顺序执行的。

2023-02-18 13:19:25 358

原创 JavaSE-线程池(2)- 线程池参数

在上篇中提到创建线程池可以使用工具类中的静态方法,比如使用方法可以创建一个拥有固定线程数的线城池,这个方法内部实例化了线程池中保留的最少线程数量,除非调用 ThreadPoolExecutor 实例方法 allowCoreThreadTimeOut(true),否则即使核心线程空闲也不会被回收线程池中允许的最大线程数超过corePoolSize 数量的非核心线程在终止之前等待的最大时长当核心线程处于非空闲状态并且有新的任务提交时,线程池会将这些任务放入等待队列中。

2023-02-15 23:31:36 211

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除