- 博客(106)
- 资源 (5)
- 收藏
- 关注
原创 【Postman】对GET请求的参数进行URL编码
本文介绍了在Postman的Pre-request Script中处理URL参数编码的方法。主要内容包括:使用encodeURIComponent()函数或pm.encode方法对GET请求参数进行编码;处理单个或多个查询参数的编码实现;将编码值存入环境变量供后续使用;对URL路径参数进行编码处理;以及在请求头中进行编码操作。这些方法能确保URL参数符合规范,避免特殊字符导致的服务器解析错误,适用于包含空格、中文等特殊字符的参数场景。
2025-09-06 11:41:42
428
原创 【Python】shutil.make_archive() 方法详解
Python的shutil.make_archive()函数是一个便捷的文件打包工具,支持多种压缩格式(ZIP、TAR等)。该函数通过简单的参数设置(base_name指定输出文件名、format选择压缩格式、root_dir和base_dir定义源文件路径)就能完成文件归档操作。相比zipfile和tarfile模块,它提供了更简单的接口,适合常见打包需求,但功能相对基础。使用时需注意路径设置和文件权限问题。
2025-08-26 07:08:23
976
原创 【Python】在 Pydantic 模型中使用非 Pydantic 定义的类作为模型字段类型
本文介绍了如何在Pydantic模型中使用自定义的非Pydantic类作为字段类型。通过使用BeforeValidator和Annotated,可以预处理输入数据(如字典)并转换为自定义类的实例。关键点包括:1)定义预处理函数将字典转为自定义类实例;2)设置模型为arbitrary_types_allowed=True以允许任意类型;3)使用Annotated标记字段类型。文章以User类为例,分别演示了处理单个对象和对象列表两种场景,并提供了完整的代码示例,展示了如何从字典数据解析为Pydantic模型。
2025-08-25 23:37:41
213
原创 【Python】PyExecJS2执行js文件报错“Cannot find module“问题
本文解决了PyExecJS2执行JS文件时无法正确加载同级模块的问题。通过分析发现,当通过execjs.compile()执行a.js时,默认工作目录是Python程序的当前目录,导致__dirname解析错误。解决方法是在编译JS代码时显式指定cwd参数为JS脚本所在目录(resource_dir_path),这样就能正确解析相对路径引入的b.js模块。关键代码修改为ctx = execjs.compile(node_script, cwd=script_dir),从而确保了模块路径的正确解析。
2025-08-22 02:45:09
404
原创 【IDEA】设置Debug调试时调试器不进入特定类(Spring框架、Mybatis框架)
本文介绍了如何通过IDE调试器设置跳过Spring框架层直接调试业务代码的方法。以Ruoyi-Vue项目为例,当在SysUserController.list()方法设置断点时,调试器会先进入Spring的AOP代理类而非目标业务方法。通过配置IntelliJ IDEA的"步进"设置,添加"org.springframework."和"org.aspectj."等排除模式,可以避免调试时进入框架代码,直接定位到业务逻辑。这种设置对所有调试会话有效,
2025-08-17 22:37:47
591
原创 【Python】Python爬虫学习路线
本文是一份Python爬虫学习的全景指南,从基础语法到实战技巧全面覆盖。首先强调Python核心基础(语法、数据结构、OOP、正则表达式等)的重要性,这是爬虫逻辑控制和数据清洗的基础。其次介绍核心工具链,包括网络请求库(requests、aiohttp)、解析库(BeautifulSoup、lxml)、动态页面处理(selenium、playwright)以及存储方案。进阶部分讲解前端知识(JS基础、网页分析)和反爬对抗技巧(加密破解、Hook技术),提供实际案例和代码示例。学习路线建议先掌握基础,再通过实
2025-08-16 15:57:27
2574
原创 【JS】JavaScript中的this详解
JavaScript中的this关键字详解 JavaScript中的this关键字是一个动态绑定的上下文对象,其值取决于函数调用方式。主要有四种绑定规则:1)默认绑定(全局对象或undefined);2)隐式绑定(调用对象);3)显式绑定(call/apply/bind);4)new绑定(构造函数实例)。箭头函数不绑定自己的this,而是继承外层作用域。使用优先级为:new绑定 > 显式绑定 > 隐式绑定 > 默认绑定。实际开发中需注意事件处理、回调函数中的this绑定丢失问题,可通过bi
2025-08-03 11:13:21
424
原创 【HTML】<script>元素中的 defer 和 async 属性详解
HTML5中<script>元素的defer和async属性用于优化脚本加载。defer异步下载脚本并在DOM解析完成后顺序执行,适合依赖DOM的脚本;async异步下载后立即执行但不保证顺序,适合独立模块。两个属性都只对外部脚本有效,不能同时使用。合理选择可提升页面性能:defer用于需要DOM的脚本,async用于独立脚本,无属性用于关键脚本。注意避免在延迟脚本中使用document.write。
2025-07-26 23:26:06
570
原创 【IDEA】迁移配置、系统、插件、日志目录
本文介绍了将IntelliJ IDEA从默认C盘迁移到D盘的操作步骤。首先关闭IDEA,将Local和Roaming目录下的JetBrains/IntelliJIdea2025.1文件夹迁移至D盘。然后修改bin目录下的idea.properties文件,配置新的config.path和system.path路径。启动IDEA后,根据提示进一步添加plugins.path和log.path属性指向新位置。整个过程需注意不同版本IDEA的目录结构差异,通过修改配置文件确保所有相关路径正确指向新的存储位置。文中
2025-07-19 10:34:43
869
原创 【Python】SQLAlchemy实现upsert
本文介绍了在SQLAlchemy中实现UPSERT(更新或插入)操作的几种方法。对于简单场景可以使用merge()方法,它会根据主键自动判断是更新还是插入记录。针对不同数据库,推荐使用原生UPSERT语法:PostgreSQL和SQLite使用on_conflict_do_update,MySQL使用on_duplicate_key_update。文章还提到可以通过捕获异常的方式实现,但不推荐在高并发场景使用。最后给出了各方法的兼容性和推荐程度对比,建议优先使用数据库特定的UPSERT功能以获得更好的性能和
2025-07-18 23:26:21
521
原创 【python】Path.cwd()、sys.executable、sys.argv、Path(__file__) 在PyInstaller打包前后的区别
PyInstaller打包Python脚本时,sys.executable、sys.argv和Path(__file__)的行为会发生变化:sys.executable从指向Python解释器变为指向可执行文件本身;sys.argv[0]从脚本文件名变成可执行文件名;Path(__file__)会指向临时解压目录而非原路径。建议使用sys._MEIPASS获取资源路径,并注意调试时参数传递的变化。理解这些差异有助于正确处理打包后的路径问题。
2025-07-16 23:38:56
861
原创 【Linux】安装Python3.11报错
如果在尝试上述步骤后仍然遇到问题,请检查错误日志中提到的具体文件和行号,以获取更多线索。此外,您还可以尝试在 Python 的官方 issue 跟踪器或相关社区论坛上搜索错误信息,看看是否有其他用户遇到了类似的问题,并寻求帮助。命令安装 Python 3.11.8 时遇到错误,这通常是由于编译环境问题、依赖项缺失或不兼容的软件包引起的。编译 Python 需要一系列的开发工具和库。确保您在 Python 源代码的根目录下执行。在 CentOS 系统上使用。命令之前,您可能需要使用。
2024-05-06 15:12:49
6047
1
原创 【Python】部署Windows系统的Python程序到Linux系统(使用venv)
如果没有,你需要先安装pip。只包含项目中使用到的依赖,但是我使用了下,体验不好,生成的。解释器的路径来创建虚拟环境。命令创建虚拟环境,默认会使用当前系统中使用的。版本,首先需要在你的系统中安装那个特定版本的。执行这个命令后,你会发现命令行提示符变成了。程序所依赖的所有第三方模块。程序所在的目录下, 使用指定版本的。总是缺少依赖,需要手动再处理一下。的文件夹,该文件夹包含了一个独立的。这将会在当前的目录下创建一个叫做。形式,表明你已经进入了虚拟环境。解释器创建一个新的虚拟环境。版本,并且它的解释器路径是。
2024-05-06 11:46:21
4483
3
原创 【正则表达式】中的“\b“
单词边界是指一个单词的开头或结尾,或者一个单词和一个非单词字符之间的位置。单词字符通常指字母、数字和下划线,非单词字符则是指除此之外的所有字符。“\b” 是正则表达式中的一个元字符,用于表示单词边界。掌握了 “\b” 的使用,可以更加精确地匹配字符串,避免出现不必要的匹配。
2023-11-03 15:30:36
4440
原创 【IDEA插件开发】RefactoringEventListener与RefactoringElementListener的区别
重构是一种改善源代码质量而不改变其功能的过程。重构可以帮助我们保持代码的整洁、简洁和易于维护。IntelliJ IDEA提供了许多内置的重构操作,例如重命名、移动、提取方法、提取常量等。重构监听器是一种特殊的接口,它可以让我们在插件中捕获和处理重构事件。通过实现重构监听器,我们可以在重构发生前后执行一些自定义的逻辑,例如更新外部设置、检查冲突、显示提示等。和。是一个全局的监听器,它可以监听所有类型的重构事件。用于获取有关所选项目中已执行重构的高级通知。
2023-11-03 14:02:29
497
原创 MySQL中使用UNION和ORDER BY的注意事项
先UNION后ORDER BY时,只需要在最后一个SELECT语句中包含ORDER BY;先ORDER BY后UNION时,由于优先级问题,需要将子查询用括号括起来,且ORDER BY后面必须有LIMIT`;
2023-04-22 21:04:30
2133
转载 SpringBoot优雅停机
Spring boot 2.0 之优雅停机springboot2.3.0优雅停机Springboot2.3优雅停机方案源码解析
2022-10-11 20:05:07
283
原创 Spring-Cache整合Redis
配置类使用从数据库中查到数据后,序列化到缓存时报错:将改为:从缓存中查到数据后,反序列化时报错:原来是因为实体类中有方法,在序列化时会调用该方法,然后缓存的json中会有字段。后来反序列化时,在实体类中找不到属性,所以就报错了!实体类
2022-10-08 16:56:23
1215
原创 @Future对LocalDate不生效的问题
*** 未来LocalDateMETHOD , FIELD , ANNOTATION_TYPE , CONSTRUCTOR , PARAMETER , TYPE_USE }) // 将注解标记为 Bean Validation 约束 @Constraint(validatedBy = {/*** 错误提示信息*/ String message() default "日期必须大于今天";/*** 分组信息,容许指定此约束所属的验证组* @return};/**......
2022-08-02 21:18:44
277
原创 【IDEA】Jump to Line插件
介绍Jump to Line插件允许您在调试时访问任何一行代码。将黄色箭头拖放到gutter中所需的位置,它将在那里放置一个执行点。与单步执行不同,该插件允许您从该点开始运行程序,而无需执行前面的代码(注:相当于前面的代码没有了)。虽然IDEA中点击行号就可以跳转到指定行,但还是会执行前面的代码若被忽略执行的代码中有声明变量,该变量就会被初始化为默认值在一个函数中,可以向前和向后跳转到行。Jump to Line以绿色高亮显示适合跳转的行。更改某些行可能会破坏工作流。这就是IDE将以黄色突出显示
2022-05-28 15:00:30
4194
原创 【JVM】java.lang.OutOfMemoryError: Metaspace
背景本项目有多个定时任务,且部署环境是预发布环境有一台服务器(16.50),生产环境有两台服务器(16.60、16.61),都注册在同一个xxl-job调度中心。xxl-job配置的路由策略都是"轮询"所以每次执行定时任务时,xxl-job都是先调度到预发布环境。问题之前一直都没有问题,但是05-21日例行查看昨日定时任务的执行情况,发现05-20日00:07:00定时任务[生成拓客本会话]调度成功,但执行时报错:java.lang.OutOfMemoryError: Metaspace
2022-05-24 20:34:34
954
原创 【MySQL】Deadlock found when trying to get lock; try restarting trans
初始化数据:CREATE TABLE `t_test` ( `FID` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `FCREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `FMODIFY_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_T
2022-05-17 20:57:16
1424
原创 【Mybatis】update语句返回的是匹配到的行数还是影响到的行数?
基础参考Mybatis Update操作返回值问题拓展:modify_time会更新吗?建表,插入数据DROP TABLE IF EXISTS `temp`;CREATE TABLE `temp` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `sort`
2022-05-12 19:58:57
936
原创 【hutool】使用问题
如何将Date转化为LocalDateTimepackage cn.hutool.core.date;public class LocalDateTimeUtil { /** * {@link Date}转{@link LocalDateTime},使用默认时区 * * @param date Date对象 * @return {@link LocalDateTime} */ public static LocalDateTime of(Date date) { if (n
2022-05-09 11:20:48
1292
原创 SpringBoot中@ConfigurationProperties配置多层嵌套和复杂Map
# ==================================================================================# 人员# ==================================================================================kfang.infra.person.incubate.000000.before-position-ids=0225,0226kfang.infra.pers
2022-04-28 15:07:13
6136
原创 seata
seata中文官网从v1.4.2版本开始,已支持从一个Nacos dataId中获取所有配置信息,你只需要额外添加一个dataId配置项注意Server和Client的命名空间和组要一致
2022-03-15 15:35:41
661
原创 application.yml与bootstrap.yml的区别
前言Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap,另外一种是 application。区别bootstrap.yml 和 application.yml 都可以用来配置参数。bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。application.yml 可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模
2022-03-12 12:24:00
4335
原创 Feign的超时、重试、降级配置
application.ymlribbon: #请求处理的超时时间 ReadTimeout: 6000 #请求连接的超时时间 ConnectTimeout: 6000 # 是否对所有请求都进行重试。false(默认)-只对get请求进行重试;true-对所有请求进行重试(对于put或post等写操作,如果服务器接口没做幂等性,重试会产生不好的结果)!!! OkToRetryOnAllOperations: false # 每个实例重试次数,不包括首次请求,默认为0。当Eurek
2022-03-11 19:39:01
1627
原创 【SpringBoot】覆盖jar包中@Bean的方法
问题分析方案一:allow-bean-definition-overridingspring: main: allow-bean-definition-overriding: true # 允许bd覆盖/** * @description: 先设置allow-bean-definition-overriding=true,然后在@Import{@link kfang.infra.feature.mysql.MysqlConfig}后再导入该类,从而覆盖其中的mysqlSq
2022-03-08 16:27:44
6326
原创 【Spring】@Transactional的事务传播方式REQUIRED、REQUIRES_NEW、NESTED
参考spring事务传播之required nested requires_newSpring框架(事务传播行为)补充NESTED是为被嵌套的方法开启了一个子事务,这个事务与父类使用的是同一个连接。REQUIRES_NEW是使用一个全新的事务,这个事务属于另外一条全新的连接。两者最重要的体现,就是在多数据源中,REQUIRES_NEW会再次触发一下数据源的获取,而NESTED则不会。NESTED开始一个 “嵌套的” 事务, 它是已经存在事务的一个真正的子事务。嵌套事务开始执行时, 它将取得
2021-12-30 16:54:42
1777
原创 【Spring】SpEL(即Spring的表达式语言)
遗漏知识点语法使用#{...}作为界定符,所有在大括号中的字符都将被认为是SpEL字面量的表示整数:#{666}String:可以用单引号或双引号作为字符串的界定符,#{‘Tom’}Boolean:#{true}、#{false}运算符算术运算符:+、-、*、/、%、∧+号还可以作为字符串拼接符比较运算符:<、>、==、<=、>=、lt、gt、eq、le、ge逻辑运算符:and、or、not、&&、||判空运算符:#{user.n
2021-12-25 21:47:51
445
原创 Jackson序列化、反序列化首字母大写的json字符串问题解决
Jackson默认的属性发现规则将会查找到如下所述的属性:所有被public修饰的字段(成员变量);所有被public修饰的getter(即形如“getXxx()”的方法);所有被public修饰的setter(即形如“setXxx(value)”的方法)字段名是通过get方法名转换过来的, 所以会出现首字母大小写问题, 以及如果用@JsonProperty("Uname")强制序列化为某个名称时, 如果不在get/set方法上加@JsonIgnore则会出现两个uname字段,一个
2021-09-17 23:34:26
6993
3
原创 【SpringBoot】@Async、AsyncConfigurer源码解析
前言之前写过一篇@Async、@EnableAsync、@EnableScheduler、@Scheduled在Spring应用中的基本使用的文章。最近在学习SpringBoot的异步任务,发现书中还提及到AsyncConfigurer接口,之前没见过它啊-_-! 那么 这个AsyncConfigurer接口到底有什么用?我们的异步执行器配置类要不要实现它? 带着疑惑,我就去阅读了一下相关的源码,终于找到答案了。顺便还理清楚了另一个问题:Spring到底是如何决定某个目标方法使用哪个异步执行器(线程
2021-08-05 01:18:56
2732
2
原创 【SpringBoot】整合Redis(使用spring-boot-starter-data-redis)
前言Jedis是Redis官方推荐的面向Java的操作Redis的客户端,而RedisTemplate是SpringDataRedis中对JedisApi的高度封装。SpringDataRedis相对于Jedis来说可以方便地更换Redis的Java客户端,比Jedis多了自动管理连接池的特性,方便与其他Spring框架进行搭配使用如:SpringCache。Lettuce 和 Jedis 的都是连接Redis Server的客户端程序。Jedis在实现上是直连redis server,多线程环境下非线
2021-08-03 09:01:48
10955
原创 [Mybatis]@Mapper注解
/** * 使用JavaConfig时,使用此注释注册MyBatis mapper接口 */@Import(MapperScannerRegistrar.class)public @interface MapperScan {}
2021-08-02 14:52:48
6586
flv.min.js
2020-10-15
pdt_tools.indentGuide.zip
2019-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅