自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Angindem博客

普普通通码农人

  • 博客(196)
  • 收藏
  • 关注

原创 Mybatis查询动态列,转Vo

摘要:本文针对项目中的动态表格列查询问题,提出了一种解决方案。通过利用Map临时存储查询结果,并结合反射机制将动态列数据转换为Vo对象。核心思路包括:1)Mapper层使用Map存储查询结果;2)通过命名规范识别动态列字段;3)利用反射将Map数据映射到Vo对象。文中提供了两个关键方法:getTarinYypeNoByColumn用于提取列字段中的类型编号,mapToPageItemVo实现Map到Vo的转换。该方法解决了字段数量不确定带来的数据处理难题,同时保持了代码的灵活性。

2025-11-10 11:01:50 24

原创 从0开始搭建Vue3项目

1、history 模式:createWebHistory 地址栏不带 #2、hash模式:createWebHashHistory 地址栏带 #获取路由对象 router 使用 useRouter。2、新建 utils/req.ts封装axios模块。获取路由参数 route 使用 useRoute。在main.ts中重新导入pinia。配置 history 模式。然后把下列代码插入到你的。之后就可以直接使用组件。2、使用 main.ts。3、配置需要持久化的仓。

2025-10-13 13:59:36 37

原创 Nacos配置中心

本文介绍了Spring Cloud Alibaba Nacos Config的配置方法。首先引入nacos-config依赖,然后在yml中配置nacos服务地址、命名空间、分组等参数,支持动态刷新配置。通过@RefreshScope注解实现配置热更新,使用@Value注解获取配置值。示例演示了如何从nacos获取用户信息(name,age),并通过接口返回验证配置中心数据获取成功。这种配置方式实现了配置信息的集中管理和动态更新。

2025-09-28 09:39:32 62

原创 网关聚合 Knife4J 文档

本文介绍了如何搭建和配置Spring Cloud Gateway网关服务。主要内容包括:1) 引入网关、Nacos服务发现和负载均衡依赖;2) 配置YML文件设置端口、Nacos连接和路由规则;3) 实现Swagger文档聚合,通过Knife4j依赖和特定配置整合各模块API文档;4) 使用StripPrefix过滤器处理路径前缀问题。配置完成后,网关可实现对News和User模块的请求路由,并聚合各服务的Swagger文档,通过统一入口访问所有API接口。

2025-09-26 10:27:41 31

原创 Dart 学习笔记(Flutter)

Dart是由Google开发的一款面向对象的现代编程语言,采用类C语法,支持强类型与类型推断。它通过AOT和JIT编译机制实现高性能运行与快速开发,内置丰富的异步模型和Isolate并发机制。Dart成为Flutter框架的唯一开发语言,实现跨平台开发(iOS/Android/Web/桌面),同时在服务端也能提供高效网络服务。开发环境需配置JDK、Android Studio、Flutter SDK等工具,并可能需解决国内网络访问问题(如镜像配置)。Dart语法简洁,支持多种注释、变量声明(var/dyna

2025-09-23 09:00:15 83

原创 创建私有docker镜像仓库+自动化构建镜像

文章摘要 本文详细介绍了如何搭建Docker私有镜像仓库和Forgejo代码托管平台的完整流程。主要内容包括: Docker私有仓库搭建 使用官方registry镜像创建私有仓库 配置非安全HTTP传输和持久化存储 安全加固(用户认证和HTTPS证书配置) Forgejo代码托管平台部署 使用Docker Compose部署Forgejo和PostgreSQL 配置环境变量和持久化存储 安装配置Forgejo Runner实现CI/CD功能 CI/CD流水线配置 工作流定义和作业创建 使用actions实现

2025-08-20 14:06:42 91

原创 ufw防火墙常用命令

本文介绍了Linux系统中UFW防火墙的基本操作命令:1. 启用/关闭防火墙(ufw enable/disable)2. 查看状态和开放端口(ufw status)3. 端口管理操作,包括删除端口规则(ufw delete allow 888)、禁用端口(ufw deny 8080)和开放端口(ufw allow 8080)4. 特别指出删除带备注的端口规则时需指定备注信息,否则会删除失败。这些命令为系统管理员提供了简明的UFW防火墙配置参考。

2025-08-02 10:09:26 340

原创 Ubuntu 配置密钥+密码登录

本文介绍了SSH密钥认证的配置流程:1. 使用ssh-keygen生成4096位的RSA密钥对;2. 将公钥id_rsa.pub内容添加到服务器的authorized_keys文件中,并确保.ssh目录权限正确;3. 修改sshd_config配置启用公钥认证,禁用密码登录;4. 重启sshd服务应用配置;5. 使用私钥进行SSH登录验证。通过这一系列步骤,可实现更安全的密钥认证方式登录服务器。

2025-08-01 01:49:58 433

原创 从0开始搭建 React

创建项目安装react的路由react-router-dom安装发送请求的axios安装状态管理的react-redux。

2025-07-30 14:29:34 61

原创 Ubuntu 根目录扩容

本文介绍了扩容云服务器根目录空间的详细步骤。首先通过df-hl和lsblk命令确认空间使用情况,发现存在未分配的1.8G空间和未使用的50G磁盘/dev/sda。接着通过pvcreate初始化物理卷,用vgextend将新卷加入卷组,再使用lvextend扩容逻辑卷,最后用resize2fs调整空间。整个过程成功将50G未使用空间添加到根目录,解决了存储空间不足的问题。

2025-07-17 01:46:50 495

原创 docker一键部署笔记

默认 登录用户名: postgres如果遇到 FATAL: password authentication failed for user "XXX"有可能防火墙的问题,禁止外部访问解决方法: 在 data 的 pg_hba.conf 中的 ipv4 添加以下一行。

2025-07-14 12:06:52 144

原创 速通TypeScript装饰器

本文全面介绍了TypeScript中的装饰器特性,包括5种装饰器类型及其应用场景。装饰器是一种特殊函数,可以对类、属性、方法、访问器和参数进行扩展。文章详细讲解了类装饰器的语法、返回值、构造类型声明和替换机制,并介绍了装饰器工厂、组合使用和执行顺序。此外,还展示了属性、方法、访问器和参数装饰器的具体应用,如状态监控、日志记录、参数验证等。虽然装饰器在TypeScript 5.0中已部分支持,但仍建议使用experimentalDecorators配置开启全部功能,因为其语法在未来版本可能调整。

2025-07-13 20:29:31 785

原创 一天速通TypeScript入门基础知识

TypeScript 由微软开发,是基于JavaScript 的一个扩展语言。TypeScript 包含了JavaScript 的所有内容,即:TypeScript 是JavaScript 的超集。TypeScript 增加了:静态类型检查、接口、泛型等很多现代开发特性,因此更适合大型项目的开发。TypeScript 需要编译为 JavaScript ,然后交给浏览器或其他 JavaScript 运行环境执行。类对象函数name: '张三',age: 18,gender: '男'

2025-07-13 17:06:07 957

原创 从零搭建uniapp项目

本文摘要: uni-app项目搭建与配置指南,包含以下核心内容: 项目创建:使用npx degit初始化Vue3+TS模板项目 UI组件库:安装uni-ui和uview-plus,配置easycom自动导入 TS支持:配置组件类型声明、标签高亮,解决TS报错 状态管理:Pinia安装与模块化配置,实现持久化存储 样式配置:全局SCSS样式引入与组件库主题集成 常见问题:处理非原生标签报错和依赖版本兼容性问题 该配置方案适用于uni-app多端开发,重点解决了TS类型支持、组件自动导入和状态持久化等常见痛点。

2025-06-06 03:35:01 1396

原创 SpringClound 微服务分布式Nacos学习笔记

单体架构适用于小型或简单的应用程序,开发团队规模较小,且对系统的扩展性和灵活性要求不高。微服务架构适用于复杂、大型的应用程序,特别是需要高可扩展性、灵活性和快速迭代的场景。开发团队需要具备分布式系统的开发和运维能力。单体架构是一种传统的软件架构风格,将整个应用程序构建为一个单一的、不可分割的单元。在这种架构中,所有的功能模块(如用户管理、订单处理、支付等)都打包在一个大型的、统一的代码库中,并且部署为一个单独的进程。微服务架构是一种将复杂应用程序分解为一组小型、独立服务的架构风格。

2025-04-22 20:05:16 1103

原创 Java反射知识点学习笔记

Java反射是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性。这种动态获取信息以及动态调用对象方法的功能被称为Java语言的反射机制。反射允许对成员变量,成员方法和构造方法的信息进行编程访问。

2025-04-17 21:32:47 663

原创 websoket 学习笔记

WebSocket 是一种基于 TCP 的网络通信协议,允许在客户端和服务器之间建立持久的双向通信连接。全双工通信(Full Duplex):WebSocket 支持客户端和服务器在同一连接上同时发送和接收数据,允许数据在两个方向上同时传输。半双工(Half Duplex):允许数据在两个方向上传输,但是同一个时间段内只允许一个方向上传输。持久连接:通过一次握手建立连接后,连接会一直保持,无需每次通信都重新建立低延迟与高效性:减少了传统 HTTP 请求-响应模式中的频繁连接开销,数据传输更高效握手阶段:客户

2025-04-14 22:58:45 1121 1

原创 Xxl-Job学习笔记

某电商平台需要每天上午10点,下午3点,晚上8点发放一批优惠券某银行系统需要在信用卡到期还款日的前三天进行短信提醒某财务系统需要在每天凌晨0:10分结算前一天的财务数据,统计汇总以上场景就是任务调度所需要解决的问题。任务调度是为了自动完成特定任务,在约定的特定时刻去执行任务的过程。@Component@XxlJob("simpleJobHandler") // 注解内的参数为我们运行模式为 Bean 类型对应的 JobHandler。

2025-03-13 22:28:53 1208

原创 RabbitMQ (Java)学习笔记

RabbitMQ是一种开源的消息代理软件,基于AMQP(高级消息队列协议)实现。它充当消息中间件的角色,允许应用程序通过消息队列进行异步通信。RabbitMQ的主要功能是接收、存储和转发消息,从而解耦应用程序组件,提高系统的可扩展性和可靠性。

2025-03-11 22:13:31 1155

原创 Java自定义注解与AOP的完美融合

AOPAspectOrientedProgramming(面向切面编程、面向方面编程),其实就是面向特定方法编程。我们想象一个场景,我们写的系统中的某个部分功能运行较慢,需要定位执行耗时较长的业务方法,此时需要统计每一个业务方法的执行耗时。如果我们对每一个业务方法手动的插入检查,这将会是巨大的工程量,且改动原始方法的过程中也会不小心疏忽。所以,我们提出 AOP 概念,面对不同的方法,我们重复使用一个功能的时候,我们设计出一个模板套用即可。

2025-01-22 14:29:50 1085

原创 Ubuntu安装docker 、docker-compose

Docker 是一个开源的应用容器引擎,它可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。Docker 使得开发、部署和运行应用程序变得非常高效,因此在软件开发和运维领域得到了广泛的应用。Docker - Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。

2025-01-16 17:14:10 599

原创 子矩阵的和(矩阵前缀和)

题目链接:用户登录 - C语言网在这里可以模拟一下就知道了,记录每个 (0,0) 到 (i,j)的矩阵和然后区间子矩阵的和,就减去多余的部分的矩阵和就可以得到了 子矩阵的和然后 这里最好使用 下标 1 ~ n 到 1 ~ m 存储,这样就可以方便,根据一条规律来使用即可。获取矩阵和函数题解代码最后提交

2024-11-21 09:37:15 401

原创 frp搭建内网穿透工具

FRP(Fast Reverse Proxy)是一款开源、简洁易用、高性能的内网穿透和反向代理软件,支持TCP、UDP、HTTP、HTTPS等协议。它允许用户将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。

2024-11-19 19:27:23 1278

原创 Redis 学习笔记

Redis 是一个基于内存的数据库,它提供了原子操作、丰富的数据类型、持久化选项以及一个简单的发布/订阅系统。由于其数据存储在内存中,Redis 能够提供极高的读写速度,使其成为处理大量数据时的理想选择。

2024-11-16 16:04:25 1204

原创 服务器的简易安全设置

购买云服务器之后,我们也应该注意一下关乎我们云服务器的安全问题。在这里介绍一下简易的安全配置。环境是Ubuntu 22.04 LTS当你购买云服务器,并且放行ssh连接端口的一刻,一些寻找肉鸡的坏人就会开始对你的云服务器开始扫描了,我们还没开始仔细研究,就被扫了这么多次。还是要留意下安全问题的。

2024-11-14 15:26:37 630

原创 (Termux)旧手机变Ubuntu服务器

Termux是一个开源项目,它允许用户在Android设备上模拟Linux环境,无需Root权限即可使用,它通过APT包管理器自动进行最小安装,用户可以根据需要安装其他软件包。由于有一些小伙伴无法支付昂贵的服务器租用服务,并且虚拟机安装系统的繁琐,在这里,旧手机通过 termux 也可以作为学习 Linux 服务器的好帮手。

2024-11-12 01:36:52 2507 3

原创 VMware虚拟机安装KailLinux系统

Kali Linux是一个专为网络安全和渗透测试设计的Linux发行版,它包含了大量安全相关的工具和软件。本文将详细介绍如何在不同环境下安装Kali Linux系统。

2024-10-30 14:04:29 2286

原创 Java文件上传删除相关模块(上传到物理存储)

在现代Web应用中,文件上传是一个常见的功能,无论是图片、文档还是其他类型的文件,用户经常需要将它们上传到服务器。而文件上传可以分为两种方式,一种是上传到对象存储OSS,另一种是上传到物理存储。本文将详细介绍如何在Java Web应用中实现文件上传到物理存储模块。其中实现这个Java文件上传模块后,也需要前端页面的配合。这里讲解的是后端,前端方面可自行简单实现。这里给出简单文件上传页面。

2024-10-22 00:44:45 901

原创 Java拦截器应用

在Java编程中,异常处理是一个重要的概念,它允许程序在遇到错误或意外情况时,能够优雅地处理而不是直接崩溃。Java提供了一套内置的异常类,但有时候这些内置的异常类可能不足以满足我们的需求。在这种情况下,我们可以创建自定义异常类来更精确地描述特定的错误情况。自定义异常类是用户定义的异常类,它继承自Java的Exception类或其子类。通过创建自定义异常类,我们可以提供更详细的错误信息,并且可以控制异常的处理方式。创建自定义异常类非常简单,通常只需要继承相应的Java内置的异常。

2024-10-21 18:04:13 940 1

原创 Docker 笔记

成功进入自定义命令配置,我们可以发现平时曾用到的常用命令 ls,实际上也是内部系统自定义的一个命令。使用 别名 alias 自定义命令在底部加上 自己的自定义的命令保存并退出 :wq。

2024-10-20 01:28:29 799

原创 Java枚举类型

枚举类型的定义使用关键字enum,后面跟着枚举的名称。枚举的每个实例称为枚举常量。

2024-10-17 22:43:21 491

原创 Java全局捕获异常处理器

全局异常处理器是指在Spring框架(或其他Java框架)中,通过特定的注解或配置,集中处理所有未被捕获的异常。这通常涉及到创建一个特殊的控制器或类,它能够捕获并处理所有未被其他部分代码捕获的异常。

2024-10-15 19:07:07 575

原创 登录校验JWT令牌

一种开放标准(RFC 7519),它定义了一种简洁的、自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的。每个JWT令牌由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。JWT可以被用来在用户和服务器之间安全地传递信息,常用于身份验证和信息交换。

2024-10-15 18:35:08 617

原创 Java后端解决CORS跨域问题

CrossOrigin(origins = "http://localhost:8080") 注解作用于相应的controller类或者方法上进行指定允许的跨域操作。其中解决CORS方法有两种,一种是 前端 jsonp 处理同源策略等相关的一些配置,另一种就是我们后端的CORS方案处理即可。由于前后端的分离,端口的不一致,出现CORS(跨源资源共享)问题。今日在学习过程中,练手的前后端分离项目遇到存在跨域的问题。另一种 是 进行指定全局允许跨域操作(一般我们用的是这个)

2024-10-14 23:28:13 645

原创 Java网络爬虫学习

Java是一种广泛使用的编程语言,尤其在企业级应用和大型系统中应用广泛。Java在处理大规模数据和并发性能方面表现出色,这对于需要高性能网络爬虫的情况可能更有优势。

2024-09-30 23:04:09 47

原创 Swagger 教程(笔记) Knife4j

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui。对于使用Swagger插件,目前,一般都使用knife4j框架。如果直接使用官网 Swagger ,配置一些都是比较麻烦的。使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接文档,以及在线接口调试页面。@Api 跟 @ApiOperation 一起用。访问通过,文档出现,配置成功!

2024-09-26 00:43:00 1760

原创 学习 SSM框架 项目总结

settings>--配置驼峰命名-->--配置别名-->--mybatis的分页组件-->

2024-09-05 23:44:48 1399

原创 实战练习篇01 注册接口

本文介绍了基于SpringBoot的用户注册系统开发过程。主要内容包括:1) 配置数据库连接和MyBatis驼峰命名映射;2) 创建用户表结构和UserEntity实体类;3) 实现Controller-Service-Mapper分层架构完成用户注册功能;4) 集成QQ邮箱服务,通过JavaMailSender实现邮件发送功能。系统采用Lombok简化代码,使用ResultEntity统一返回格式,并通过@Slf4j记录日志。最后展示了数据库插入成功和邮件发送测试结果,为后续开发验证码接口奠定了基础。

2024-08-17 20:05:51 43

原创 关于 Mybatis 的开启二级缓存返回对象不一致问题

做实验报告的时候,跟着学习,发现我已经将 开启 二级缓存的 配置都配置好了,但是返回值地址不一致,说明对象不一致,二级缓存命中失败。mybatis-configMapperTestCode:最后运行效果: 根据我的理解,需要将 SqlSession 关闭,本地缓存 与 SqlSession 的绑定,解绑后,将本地缓存,传到 二级缓存那里才可以。最后运行效果:报错了,信息如下:抛出了关键的异常: java.io.NotSerializableException

2024-07-01 16:23:13 1063

原创 小丑的身份证和复印件 (BFS + Floyd)

本题链接:登录—专业IT笔试面试备考平台_牛客网 输出 12 思路: 根据题意,要求最短时间,实际上也可以理解为最短距离。 所以应该联想到有关最短距离的算法,在这里给出的 n,m是100,所以我们可以暴力求最短距离即可,身份碎片虽然分大小写,但是它们都是唯一的点,所以可以通过Floyd,记录每个点之间的最短距离,随后累加即可,其次这里的最短距离可以用BFS求得最短距离。注意一个细节,初始化无穷大的时候,尽量小一些,否则

2024-05-09 19:02:05 859

空空如也

空空如也

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

TA关注的人

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