自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常见安全设备理解

按照个人理解对常见安全设备进行分类和介绍。

2025-12-16 17:51:55 255

原创 springboo打包--微服务打包

本文介绍了在Spring Boot微服务项目中统一打包部署的四种方案。推荐使用父工程统一聚合Jar的方式,通过maven-dependency-plugin自动收集各子模块jar到统一目录。其他方案包括使用Assembly插件生成发布包、Jenkins脚本统一收集以及子模块自行Copy(不推荐)。重点分析了各方案的优缺点,其中父工程聚合方式既能保持微服务独立性,又能实现高效部署,是最优选择。文章还详细说明了Maven构建顺序如何保证该方案的可行性。

2025-12-15 16:54:44 993

原创 springboo打包--Maven 打包

本文介绍了Spring Boot应用的打包机制,重点分析了默认打包方式及可执行Jar的结构。Spring Boot通过spring-boot-maven-plugin将普通Jar重新打包为包含所有依赖的Fat Jar,可直接通过java -jar命令运行。文章详细解析了Fat Jar的内部结构,包括BOOT-INF/classes存放应用代码、BOOT-INF/lib存放依赖库,以及Spring Boot自定义类加载器。同时提供了pom.xml配置示例,建议通过finalName控制Jar名称,确保打包文件

2025-12-15 16:52:52 421

原创 SpringBoot参数绑定机制

文章摘要:本文介绍了后端接口开发中常见的参数获取方式,包括@RequestParam、@RequestBody、@PathVariable和@ModelAttribute四种注解的使用场景与特性。同时说明了Spring MVC的默认参数绑定机制,即不配置注解时自动匹配POJO对象属性的特性。最后补充了使用Map<String, String>接收所有参数的场景。文章通过代码示例展示了不同参数绑定方式的具体实现方法,并强调了参数名与属性名一致的重要性。

2025-11-20 21:55:00 532

原创 【问题记录】 容器监控数据不一致:内存、CPU、状态三类指标差异解析

容器生命周期监控指标差异分析:容器从运行到移除经历多个状态变化,Prometheus监控中三个关键指标(内存使用、CPU占用率、启动时间)在不同阶段会出现不一致现象。内存指标随cgroup释放最快消失;CPU率依赖采样窗口,可能滞后;启动时间指标则持续到元数据删除。典型场景如无流量服务、快速重启容器等会导致指标差异,循环重启容器可能仅出现在部分指标中。理解这些差异有助于准确诊断容器状态。

2025-11-20 19:44:31 346

原创 [Nginx] 3.由HTTP转发引出的重定向问题

摘要:在调试接口时发现HTTP的POST请求被Nginx强制转为HTTPS后变为GET请求,导致参数丢失。这是由于301/302重定向的默认行为将POST改为GET。解决方案包括:直接使用HTTPS、改用307/308重定向保留请求方法、Nginx同时监听80/443端口或使用rewrite重写而非重定向。关键要区分重定向(客户端感知)和重写(服务端内部处理)的差异,以及URL参数和请求体参数在重定向时的不同处理方式。

2025-10-28 17:47:12 414

原创 【Linux】Linux时区设置与Java应用的时区问题

参考 Linux 修改时区的方法,不推荐用于生产环境,因为容器重启后修改可能丢失。该方法需要镜像中已经包含时区数据且能识别 TZ环境变量。让容器直接使用宿主机的时区配置,无需修改镜像。一个常见问题,可能存在。

2025-10-17 17:22:19 358

原创 【ElasticSearch】text 和 keyword 类型区分

Elasticsearch中text和keyword类型的核心区别在于:text类型会分词处理,适合全文搜索;keyword类型保持原样存储,适合精确匹配。text通过分析器建立倒排索引支持模糊查询,但排序聚合需额外配置;keyword天然支持精确查询和聚合操作。实际应用中常采用多字段类型,同时定义text主字段和keyword子字段,兼顾全文检索与精确匹配需求,其中keyword子字段常用于排序、聚合等场景。

2025-10-13 15:44:27 558

原创 【代码记录】日期字符串聚合

解决了聚合中的一个核心问题:如何区分“可代表整体的聚合”和“仅代表部分数据的聚合”。只有当一个分组内的模式能完整覆盖一个自然时间单位(如一个完整的月)时,才用通配符(*)替代,否则就保留所有原始模式。这有效防止了数据缺失情况下的错误聚合,保证了数据的准确性。确保了聚合是一个“尽力而为”的过程,即使第一层聚合(如按年)后结果集仍然很大,系统也不会放弃,而是自动降级到更细的粒度(月、旬)继续尝试,直至达到可接受的范围。同时,可以最大程度上保证不引入额外的索引,也就是额外的查询开销,保证查询的精确性。

2025-09-26 15:59:54 286

原创 【MYSQL】Java SQL 预编译解析与 DDL 语句挑战

摘要:本文探讨了动态修改数据库表结构时使用预编译(Prepared Statement)的安全性问题。虽然MySQL支持DDL语句预编译,但JDBC规范存在局限性,无法正确处理表名、列名等标识符的占位符替换,导致语法错误。文章分析了预编译的核心优势(安全性和性能)及在MyBatis中的实现方式,重点指出#{}和${}占位符的区别。最后提出了针对DDL语句的安全处理方案,包括白名单校验和参数严格过滤,为解决动态表结构修改中的SQL注入风险提供了实践指导。

2025-09-24 16:06:22 1128

原创 【MYSQL】MySQL 中反引号与引号

MySQL数据库操作中,反引号(`)、单引号(')和双引号(")用途不同。反引号用于引用标识符(表名、列名等),特别在处理保留字或特殊字符时必需。单引号是字符串和日期的标准表示方式,若字符串包含单引号需转义。双引号默认可替代单引号,但在ANSI_QUOTES模式下会变为标识符引用。建议优先使用单引号表示字符串,避免双引号引发的兼容性问题。特殊情况下需嵌套或转义引号时,需根据具体规则处理。

2025-09-24 15:32:19 1198

原创 【Nginx】2. Tengine 容器化部署

本文介绍了使用Docker部署Tengine和OpenResty的完整流程。主要内容包括:环境准备(Docker安装和端口检查)、Tengine容器部署(镜像获取、目录挂载配置、路径确认和容器启动)、日常维护(配置修改和日志查看)以及OpenResty的补充部署说明。重点强调了端口管理、配置文件映射和路径一致性的重要性,并提供了完整的docker run命令示例。通过容器化部署方式,实现了服务的高效管理和维护。

2025-09-19 15:30:09 452

原创 【MYSQL】SQL语句幂等性

本文对比了两段SQL语句的防重机制差异,重点分析了SQL幂等性在DevOps流程中的重要性。第一段SQL直接插入数据,存在重复执行风险;第二段SQL通过WHERE NOT EXISTS子查询确保数据唯一性,具备幂等性。文章进一步阐述了幂等性的概念、应用场景及实现方式,包括DDL操作(如CREATE IF NOT EXISTS)和DML操作(如INSERT IGNORE、ON DUPLICATE KEY UPDATE等)的幂等实现技巧,以及UPDATE/DELETE操作的安全注意事项。这些技术可有效提升数据库

2025-09-16 17:22:03 444

原创 SpringBoot中的循环依赖以及解决办法

摘要:SpringBoot 2.6+版本默认禁止循环依赖,会抛出BeanCurrentlyInCreationException异常。常见解决方案包括:1)配置允许循环依赖;2)使用@Lazy延迟注入;3)改用Setter/字段注入;4)通过Provider延迟获取Bean;5)代码重构消除循环依赖。其中前四种为临时方案,最后一种为根本解决方案。这些方法适用于不同场景,开发者可根据项目实际情况选择合适方案。(148字)

2025-09-15 18:03:52 311

原创 Spring Cloud Alibaba 与 Spring Boot、Spring Cloud 的版本兼容性对照

本文提供了Spring Cloud Alibaba各版本与Spring Cloud、Spring Boot及主要组件的兼容性对照表。最新稳定版本为2023.0.1.0,对应Spring Cloud 2023.0.1和Spring Boot 3.2.4,支持Sentinel 1.8.6、Nacos 2.3.2、RocketMQ 5.1.4和Seata 2.0.0。表中详细列出了从2021到2023年间各版本间的对应关系及组件版本要求,为开发者选择合适的版本组合提供了参考依据。

2025-09-15 11:35:23 1068 1

原创 5. Redis缓存实现快速入门

本文介绍了基于Redis实现用户查询缓存与接口限流的技术方案。缓存部分通过@Cacheable等注解实现5分钟TTL的用户数据缓存,采用JSON序列化并防止缓存穿透。限流部分通过自定义注解和拦截器实现IP维度的接口访问控制(1分钟10次),使用Redis原子操作保证准确性。方案包含详细配置代码、验证方法和避坑指南,如防止缓存穿透的null值处理和限流Key设计,兼顾功能实现与系统稳定性。

2025-09-04 14:29:07 199

原创 【Nginx】1. Nginx信创调研

Nginx 凭借其高性能、高稳定性、低资源消耗以及灵活强大的反向代理与负载均衡功能,已成为构建现代高性能网站和应用基础设施的首选工具之一。奠定了其作为互联网关键技术基石的重要地位。而基于信创项目需求,对整理了当前主流的服务器软件,帮助开发者快速定位适合的工具。

2025-09-02 11:38:55 461

原创 4.基础名词 DO / DTO / VO / DAO

2025-07-23 14:16:59 334

原创 2. SpringBoot 异常处理/自定义格式校验

在类级别约束的异常处理时,ex.getBindingResult().getFieldErrors() 会返回空值;在 Controller 方法上直接使用参数级约束,并且,Controller 类上有 @Validated 注解时,验证失败会触发 ConstraintViolationException 异常。注意:类级别约束应该加在需要验证的目标类(实体类/DTO)的类声明上,且在 Controller 方法参数添加 @Valid 和在 Service 方法参数添加 @Valid。

2025-07-22 09:22:59 834

原创 3. 自定义注解

Java自定义注解是一种元编程技术,通过声明式标记为代码添加元数据和行为。核心要素包括@Target(定义应用范围)、@Retention(生命周期)、@Documented(是否包含在JavaDoc)、@Inherited(可继承性)和@Repeatable(重复使用)。创建流程分为定义注解接口、实现处理器(如AOP、BeanPostProcessor或拦截器)和应用注解三步骤。典型应用包括自定义验证(结合验证器实现)和权限控制(通过切面编程)。注解技术能有效减少样板代码,提升代码可读性和框架扩展性,是J

2025-07-11 15:44:12 808

原创 centos7镜像下绕过systemctl限制,即不添加/usr/sbin/init参数,安装mysql

考虑到容器化技术的设计和限制,CentOS 7 镜像对 systemd 有一些限制,并不支持直接运行 systemctl。但在 CentOS 7 的镜像中,想要使用 systemctl 启动 mysql 服务,必须要在创建容器的时候添加参数。在添加了 /usr/sbin/init 作为启动参数情况下,在启动容器时,会跳转到一个文本模式的登录界面,要求用户登录。这一问题可能有多种解决方法,这里给出一个不需要重新构建镜像的方法。

2024-04-20 17:25:45 553

原创 centos7 mini虚拟机从零开始 安装常用软件并配置防火墙

centos7 mini虚拟机从零开始 安装java,conda,mysql和docker,并配置防火墙,开放对应的端口

2024-04-20 16:58:43 574

原创 【论文阅读006】:Reducing Test Cases with Attention Mechanism of Neural Networks

本文通过提出了新的数据增强方案,能够处理长序列的模型结构,主要来对生成的测试样例缩短。删去无关的字符,只保留会导致程序崩溃的部分,提高模糊测试变异的效率

2024-04-20 16:41:07 1038 1

原创 【论文阅读005】:Nuances are the Key: Unlocking ChatGPT to Find Failure-Inducing Tests with Differential...

一句话论文:通过引导,使ChatGPT了解到程序正确版本与有缺陷版本之间的细微差别,从而能生成触发程序缺陷的测试用例。

2024-04-13 10:04:27 1317 2

原创 centos7 mini虚拟机从零开始 安装并配置vmtools

在VMware下,用centos-7-Minima镜像从零安装centos系统。并配置root权限,连接网络,并安装vmtools,使用共享文件夹

2024-03-27 21:02:10 556

原创 1-ubuntu下docker安装

ubuntu下docker安装。

2024-03-16 16:56:14 426 1

原创 2-使用Rabbit MQ配置mqtt服务

在ubuntu环境下,使用docekr形式安装rabbitmq,并启动mqtt服务

2024-03-16 16:55:35 1210 1

原创 [记录]C++ 中二维向量的定义与遍历

/ 创建一个包含n个vector<int>的二维动态数组,每个vector<int>都是空的,大小为n x 0i < n;++i) {if (!g[i].empty()) { // 需要判断是否非空// 具体操作// 创建是一个n x n的二维数组,但所有元素的值都是未定义的int(n));i < n;++j) {// 具体操作,但要注意元素的值是未初始化的// 创建一个n x n的二维动态数组,每个元素都被初始化为-1int(n, -1));

2024-03-02 11:04:48 854 1

原创 ubuntu20.04下Defects4J详细安装步骤

Defects4J(https://github.com/rjust/defects4j)作为软件漏洞领域一个非常重要的数据集,绝大多数的漏洞修复相关研究都涉及到了这一数据集,当想要复现这些论文的时候,Defects4J的安装就变得非常重要。而能够查到的关于Defects4J安装与配置的资料比较少,而且很多并不够全面。因此,这里把之前配置的步骤以及其中遇到的问题整理和整理一下,供大家参考,希望能够帮到大家。时间:2023.8.17。

2023-08-17 10:53:47 1538 1

原创 PyTorch torch.nn.functional.pad()用法详细说明

PyTorch的torch.nn.functional.pad()函数可以将一个Tensor类型的变量在不改变维度的情况下扩展到固定长度。

2023-03-19 18:13:21 6634

原创 Python remove()使用过程中出现的问题

记录一次在使用remove()函数过程中遇到的一些问题

2023-03-19 17:24:24 887

原创 【论文阅读004】:V-Fuzz: Vulnerability Prediction-Assisted Evolutionary Fuzzing for Binary Programs

这篇文章设计并实现了一种基于图神经网络的脆弱性预测模型,给出预测目标二进制程序各函数块的脆弱概率,从而能够衡量不同测试用例的质量,从而能够选择更有针对性的Seed。这是第一篇将二者结合的论文。

2022-11-28 11:29:49 1117 1

原创 【论文阅读003】:CURE: Code-Aware Neural Machine Translation for Automatic Program Repair

这篇文章作为2021年的SOTA,将其他领域内的一些技术迁移到自动修复这一问题上,在两个常用数据集上取得了比较好的效果,并为自动化漏洞修复这一方向中存在的一些问题,提供了部分解决思路

2022-10-08 16:10:59 1379 1

原创 VulnHub DC1靶机渗透测试

对VulnHub DC1靶机进行渗透测试。最终,得到了四个flag和一个thefinalflag,共5个flag。有两个问题不是特别清楚,需要再进一步学习。根据网络上两篇博文学习,总结。如果有版权问题,请联系我进行修改或删除...

2022-08-25 20:15:28 1393 1

原创 【论文阅读002】Generating Natural Language Adversarial Examples through ProbabilityWeightedWord Saliency

论文地址:https://www.aclweb.org/anthology/P19-1103/,发表于第57届计算语言学协会年会论文集(2019年7月28日至8月2日)的第1085-1097页。目录论文主要工作已有的工作创新性具体方法问题对抗样本示例单词替换候选词选择替换策略效果评价论文主要工作在产生对抗样本,保持词法,语法的正确性和语义的相似性。提出了一种全新的方法:在同义词替换策略的基础上,引入了一种新的由词显著性和分类概率决定的词替换顺序,从而提

2021-03-23 16:23:33 2043 1

原创 PWWS开源代码各部分理解

这一部分是PWWS攻击方法的开源代码(地址在https://github.com/JHL-HUST/PWWS)中几个重点文件的梳理。主要用于记录自己的思路,还有一部分不太清楚,之后有更多了解再改正,有什么问题的话欢迎在评论区说明。一、paraphrase.py变量supported_pos_tags,标签列表,即支持的单词种类; SubstitutionCandiadate类,候选词池类。包含了四个属性,token_position,替换位置;similarity_rank,相似度;origina

2021-03-12 17:23:23 1474

原创 【读论文-001】OpenAttack: An Open-source Textual Adversarial Attack Toolkit

最近,对文本对抗这个方向比较感兴趣,所以找了一部分论文打算一篇一篇慢慢地读,顺便记录下来,也正好能理一理思路。文章题目是《OpenAttack: An Open-source Textual Adversarial Attack Toolkit》,原文地址在https://arxiv.org/pdf/2009.09191.pdf,同时收录在https://github.com/thunlp/TAADpapers中,这个项目中还有许多其他文本对抗相关的内容。这篇论文主要是介绍了名为OpenAttack的一

2021-03-10 22:15:35 643 3

原创 C++实现简单的RSA加密

#include <iostream>#include <stdio.h>using namespace std;int primeNum(int num);//判断素数int coprime(int a, int b);//判断互素int candp(int a, int b, int c); //计算密文int key();//生成密钥int encryption();//加密int decode();//解密int main(){ cout &.

2021-03-04 09:24:45 1080 1

原创 记录Ubuntu更换国内源时出现的一个问题

最近,在学习fabric相关的内容,所以尝试,然后总是会出现各种各样的问题,然后在一次重新安装虚拟机后,竟然更换源时都报错了。然后在网上查了查相关的内容,有的说是在软件与更新中更换地址之类的,并没有解决问题,不过提供了一个思路,再仔细回想一下,貌似是在安装虚拟机的最后几步中有一项是选择你所在的城市,由于是很多次重新安装虚拟机了,所以就没有在意,直接跳过了。所以,重新安装虚拟机时,将地址设置为北京(不知道其他的国内地址能不能解决,也没有尝试),然后,更改完文本后,更新时,没有任何问题...

2020-10-18 22:31:28 543 1

第十届蓝桥杯大赛省赛(软件类)真题.zip

第十届蓝桥杯大赛省赛(软件类)真题.zip

2025-09-18

quixbugs漏洞数据集 "QuixBugs: A Multi-Lingual Program Repair Benchmark Set Based on the Quixey Challenge"

quixbugs漏洞数据集 "QuixBugs: A Multi-Lingual Program Repair Benchmark Set Based on the Quixey Challenge"

2025-09-05

常用【自然语言处理】多源NLP数据集下载路径汇总:文本分类与推理任务资源集成方案

内容概要:该文档提供了一份自然语言处理领域常用数据集的下载路径列表,涵盖了多个经典文本分类与自然语言推理任务的数据资源,如MultiNLI、SNLI、SST-2、GLUE、AG News、MR(电影评论)等,并给出了各数据集的具体下载链接。这些数据集广泛应用于情感分析、文本推理、新闻分类等任务,部分来源于知名高校和研究机构,部分托管于GitHub等公开平台,便于研究人员和开发者获取与使用。; 适合人群:从事自然语言处理研究的学生、研究人员以及AI开发工程师,尤其是需要标准数据集进行模型训练与评估的从业者;; 使用场景及目标:①为NLP模型训练提供高质量、标注清晰的公开数据集;②支持文本分类、情感分析、自然语言推理等任务的算法开发与性能 benchmark;③便于复现论文实验结果或进行学术研究; 阅读建议:使用时应根据具体任务选择合适的数据集,并注意数据格式解析与预处理,部分链接可能需要科学访问或从镜像站点获取。

2025-09-05

SpringBoot 快速启动项目

SpringBoot 快速启动项目

2025-09-05

nltk-data数据包手动安装

nltk-data数据包手动安装

2025-09-04

空空如也

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

TA关注的人

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