自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MyBatis-Plus 中 的动态SQL 片段(sqlSegment)讲解

在 MyBatis-Plus 中,`sqlSegment` 通常指 **动态生成的 SQL 代码块**,例如由条件构造器(`Wrapper`)自动生成的 `WHERE` 条件、`ORDER BY` 排序等。开发者可通过特定语法(如 `${ew.customSqlSegment}`或者`${ew.sqlSegment}`)将这些片段插入到自定义 SQL 中,实现灵活组合

2025-05-26 11:07:54 810

原创 Maven项目中的核心配置文件POM.xml详解

pom.xml是Maven项目的核心配置文件,定义了项目的基本信息、依赖关系和构建配置。主要内容包括:项目坐标(groupId、artifactId、version)、基本信息(名称、描述)、依赖管理(依赖声明、范围控制)、构建配置(源码目录、插件设置)、多模块管理、仓库配置以及属性定义。该文件采用XML格式,通过合理配置可实现项目依赖管理、构建过程控制和多模块项目协调,是Maven项目管理的基础。

2025-05-26 10:50:17 684

原创 Swagger2与Springdoc集成与使用指南

本文提供了将 Swagger2 迁移到 Springdoc(支持 OpenAPI 3)的详细指南。首先,介绍了如何通过 Maven 依赖配置引入 springdoc-openapi-starter-webmvc-ui,并移除旧版 springfox-swagger2 依赖以避免冲突。接着,讲解了基础配置,包括在 application.properties 中启用 Springdoc 和通过 Java 配置类自定义 OpenAPI 信息。文章还对比了 Swagger2 和 Springdoc 的常用注解,并

2025-05-23 10:49:27 459

原创 @ConfigurationProperties和@value的区别

在 Spring Boot 中,@ConfigurationProperties 和 @Value 是两种常用的配置注入注解,但它们在功能和使用场景上有显著差异。@ConfigurationProperties 适用于批量绑定一组相关属性到对象,支持类型安全、松散绑定和复杂结构(如嵌套对象、集合),适合集中管理复杂配置。@Value 则用于注入单个简单值,支持 SpEL 表达式和默认值,适合快速注入简单配置或动态计算值。选择时,若需管理复杂配置,推荐使用 @ConfigurationProperties;若

2025-05-23 10:48:21 873

原创 XWPFDocument生成word文档介绍(格式 .docx)

是 Apache POI 库中用于操作.docx格式 Word 文档的核心类。它提供对文档内容(段落、表格、图片、样式等)的动态生成和修改能力,适用于需要自动化生成复杂 Word 文档的场景。在pom.xml中添加Apache POI依赖:</</</</

2025-04-28 09:39:06 1028

原创 HWPFDocument 和 XWPFDocument 对比

【代码】HWPFDocument 和 XWPFDocument 对比。

2025-04-28 09:37:30 588

原创 Swagger2的常用注解

1.关键区别说明前者用于非实体类参数(如路径参数、查询参数),后者常用于配合 @RequestParam 或 @PathVariable前者用于实体类字段,后者用于方法参数‌2.Swagger UI 访问路径原生UI界面 springfox-swagger-ui更美观的界面 swagger-bootstrap-ui3.创建swagger配置类通过合理使用这些注解,可以生成清晰、交互性强的 API 文档,并进行接口分组。@Bean.select().build()// 用户管理分组。

2025-04-17 09:15:00 956

原创 Springdoc的常用注解(Swagger3标准的OpenAPI 3 规范)

规范先进:支持 OpenAPI 3.0,覆盖 WebSocket、异步接口等场景。兼容性强:完美适配 Spring Boot 2.6+ 和 3.x。配置简洁:通过注解和配置类即可实现复杂需求(如安全认证、多分组)。迁移时只需调整依赖、更新注解包路径,并参考上述对比表修改代码,即可快速升级到更健壮的 API 文档方案。

2025-04-17 09:15:00 1609

原创 分布式服务架构 vs 微服务架构:核心区别与适用场景详解

对比矩阵维度分布式服务架构微服务架构服务拆分按功能模块拆分(粗粒度)按业务能力拆分(细粒度)数据管理允许共享数据库,事务管理简单独立数据库,强最终一致性,事务复杂技术栈统一技术栈(如全Java)支持多语言(Go、Python、Java混合)部署与扩展模块级部署,扩展成本较高服务级部署,秒级扩缩容(K8s)团队协作集中式团队协作去中心化,多团队自治适用阶段系统演进中期,业务复杂度中等业务高速增长期,需快速试错。

2025-04-14 10:27:15 835

原创 Java微服务架构:注册中心与配置中心

轻量级场景云原生架构:Nacos一站式解决方案企业级需求参考资料Nacos官方文档Apollo配置中心设计理念。

2025-04-14 10:26:48 1060

原创 手把手教你设置CSDN文章内部索引——提升可读性与SEO排名的终极指南

这里是第一章内容…

2025-04-01 16:57:48 475

原创 AI编程工具Trae和Cursor对比

Trae凭借免费策略、中文支持和 Builder 模式,成为中文开发者快速实现创意的利器;Cursor则在复杂项目开发与生态整合上更具优势。若追求成本效益和本地化体验,Trae 是更优选择;若需深度开发能力,Cursor 仍是主流工具。

2025-04-01 16:57:25 1200 1

原创 IntelliJIDEA中实现Spring Boot多实例运行:修改配置与批量启动详解

通过 ‌修改配置‌和 ‌批量启动‌两种方式,可在IDEA中轻松实现Spring Boot多实例运行:简单调试‌:优先使用VM参数快速切换端口。复杂场景‌:通过多配置文件和批量启动模拟集群环境。避坑指南‌:关注端口冲突、配置隔离和注册中心健康状态。

2025-03-24 22:24:41 1765 1

原创 Hutool 核心功能全解析

场景原生 Java 代码量Hutool 代码量效率提升HTTP 请求封装20 行(处理异常/编码)1 行95%日期格式化5 行(SimpleDateFormat)1 行80%文件分片上传50 行(手动分片+流控制)3 行94%Hutool 的核心价值在于“消灭 Util 包”,其模块化设计适配从个人项目到企业级系统。官方文档Hutool 官网Gitee 仓库。

2025-03-24 19:58:33 1001

原创 IntelliJ IDEA 中 Git 高频问题与操作详解|新手避坑指南

提交前:对比差异,写清注释合并前:先拉代码,减少冲突分支管理:命名规范,定期清理后悔药:善用 Stash 和 Reset实战 QA❓问:IDEA 中如何快速查看当前文件的修改状态?✅答蓝色:已修改未提交绿色:新文件未跟踪灰色:未修改❓问:推送代码时提示 “non-fast-forward” 错误怎么办?✅答:说明远程有更新,先执行Pull→ 解决冲突 → 重新推送。

2025-03-19 20:13:24 997

原创 IntelliJ IDEA新建文件配置作者信息、日期和描述等

在使用 IntelliJ IDEA 进行开发时,我们经常需要在新建的文件中添加作者信息、创建日期和文件描述等注释。幸运的是,IntelliJ IDEA 提供了强大的文件模板功能,可以帮助我们自动生成这些信息。通过 IntelliJ IDEA 的文件模板功能,我们可以轻松地为新建文件添加作者信息、日期和描述等内容。例如,将文件头信息提取到一个公共模板中,然后在多个文件类型中引用。这样,每次新建一个 Java 类时,IDEA 都会自动生成包含作者、日期和描述信息的注释。在模板内容中添加注释,使用预定义的变量。

2025-03-19 19:57:40 1681

原创 MySQL 批量插入 vs 逐条插

批量插入:速度快,适合大数据量。逐条插入:灵活性高,适合小数据量或实时插入。根据你的需求选择合适的方式,能让你的程序跑得更快更高效!一句话总结:能批量插入就别逐条插,效率高得多!希望这篇文章对你有帮助!如果有问题,欢迎留言讨论~

2025-03-14 19:12:04 679

原创 如何关闭和打开本地的mysql

运维刚需:开发调试、系统维护时频繁需要操作数据库服务跨平台差异:不同操作系统操作方式迥异(Windows图形化 vs Linux命令式)避坑指南:80%的服务异常可通过正确启停操作解决系统现象修复方法Windows拒绝访问右键CMD选择【以管理员身份运行】Linux命令前加sudo或切换root用户macOS检查系统偏好设置→安全性与隐私。

2025-03-14 19:11:45 851

原创 IDEA接入阿里云百炼中免费的通义千问[2025版]

1.在settings->Tools->CodeGPT->Providers->Custom OpenAPI路径下,新建一个openapi2.输入从阿里云百炼中创建的API 密钥3.输入URL: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions4.请求body的模型改为刚才复制的model:qwq-32b(这个是从阿里云百炼的模型广场中找的免费通义千问模型)

2025-03-10 21:16:46 2480

原创 MySQL快速检测字段值是否包含大写的精简指南

⚠️ 避免全表扫描:BINARY和REGEXP会使查询效率下降30%+✅ 查询技巧:结合LIMIT 1快速判断是否存在大写。✅ 优先方案:对常检测字段建立预处理列+索引。

2025-03-03 15:45:26 282

原创 JAVA垂直越权和水平越权

水平越权(Horizontal Privilege Escalation)定义:同一权限等级的用户之间,通过非法手段访问或操作其他用户的资源。示例用户A通过篡改URL参数(如订单ID)访问用户B的订单信息。用户绕过权限验证,通过API直接获取他人数据。常见原因服务端未校验资源归属,如数据库查询未关联当前用户ID。依赖客户端传递的参数(如用户ID)进行权限判断,未在服务端二次验证。防范措施强制资源关联用户:在数据库查询中,始终将当前用户ID作为条件(如服务端校验。

2025-03-03 15:44:41 1011

原创 IDEA接入硅基流动中免费的DeepSeek[2025版]

1.在settings->Tools->CodeGPT->Providers->Custom OpenAPI路径下,新建一个openapi2.输入从硅基流动中创建的API 密钥3.输入URL: https://api.siliconflow.cn/v1/chat/completions4.请求body的模型model改为:deepseek-ai/DeepSeek-R1-Distill-Llama-8B(这个是从硅基流动的模型广场中找的免费deepseek模型)

2025-02-22 18:06:52 3093

原创 IDEA接入DeepSeek最新教程Proxy AI(codeGpt) [2025版]

此时,在右侧就有一个codeGPT的图标,打开后就能输入文字进行对话了,这种配置的大模型属于在线的,连接deepseek的官方api,有时候会有网络卡顿问题,多试几次。2.那怎么办呢,我们其实还可以对接其他免费的大模型,或者使用目前codeGpt自带的,也可以自己本地部署deepseek,然后用ollama配置,可以参考。左侧其他选型也是各种大模型。1.对话,显示Insufficient Balance(余额不足) ,这时候,才发现目前对接deepseek已经用不了,哦豁!

2025-02-22 17:29:29 7049 6

原创 宝塔和docker的区别

#宝塔面板 #Docker #运维工具对比 #容器化技术 #DevOps

2025-02-15 17:06:51 1813 5

原创 EasyExcel 读取模板 复杂表格填充

1.占位符在根据模版导出数据时,要预先设置占位符。包括,单个数据占位符和列表数据占位符。单个占位符:{字段名} 如:{name}列表占位符:{.字段名} 如:{.age},如果一个表格中有多个数据列,占位符前要加前缀,如:{t1.id}、{t2.name}2.如果需要配置多个list,可以用new FillWrapper 申请别名:3.碰到输入的文件名和文件内容乱码:引起原因是项目的编码不是UTF-8,更改即可。

2025-02-15 15:22:03 1156

原创 java对list集合进行分页的四种写法

【代码】java list集合进行分页的多种写法。

2025-02-15 14:32:42 1007

原创 IDEA如何回退提交的git代码(四种常见场景)

git undo commit revert commit reset 合并出错

2024-07-20 17:38:14 16106 2

原创 git统计代码量

gitlab ,github ,gitee

2024-07-11 17:45:32 3356

原创 常见的开源工具(代码托管平台)都有哪些

‌它不仅提供了项目管理、‌代码管理、‌文档管理和效能度量等多种功能,‌还支持扫描和CI/CD工具。‌Gitee的开发者超过1200万,‌托管项目超过2800万,‌并于2016年推出企业版,‌提供企业级代码托管服务,‌成为开发领域领先的SaaS服务提供商。此外,‌Gitee还坚持「‌国产信创」‌信念,‌成为「‌信创」‌产业体系会员单位,‌主张通过一站式DevOps平台帮助中国企业提质增效、‌实现产业升级,‌缩小与国际最高水平的差距,‌防止国产软件基础工具陷入「‌卡脖子」‌的危机。Gitee(码云)是。

2024-07-11 17:45:02 1349

原创 java常用的上传下载工具类

java 上传下载功能

2024-03-06 15:41:18 2154

原创 java对接第三方接口的三种方式

httpURLConnection、colseableHttpClient、RestTemplate

2024-03-01 16:50:45 4400

原创 一个接口有多个实现类,@Autowired注入map方式初始化实现类并统一调用(策略模式)

初始化所有的OrderService实现类并通过OrderFactory 来调用具体的实现类Map String参数 是定义的service的类名,可以使用@Component(“AA”) 重命名为AA@Slf4j@Service/***策略模式*会在spring启动时把所有OrderService加载到map中*关键在于 @Autowired**/@Autowired");定义一个接口,用于提供统一的调用方法/***处理订单。

2024-02-29 09:05:00 1457

原创 spring自定义注解之-ElementType.METHOD方法级注解声明

ElementType.FIELD字段级注解声明如果在项目中,多处地方都需调用到同一个方法进行逻辑处理,且与方法的业务逻辑无关,比如监控,日志等,则可用自定义的方法来实现,使得代码更加简洁、易于维护,提高可读性。1.定义一个自定义的METHOD注解(可以带参数和不带参数)2.针对该注解,创建一个切面类,进行逻辑处理3.如何作用在不同类的方法上。

2024-02-28 10:21:05 1183

原创 spring自定义注解之-ElementType.FIELD字段级注解声明

在我们日常开发过程中比较常用的自定义注解有以下几种:@Target(ElementType.FIELD) 该定义作用在类的属性上@Target(ElementType.METHOD) 该定义作用在类的方法上其他的声明范围有:TYPE:接口、类、枚举、注解PARAMETER:方法参数CONSTRUCTOR:构造函数LOCAL_VARIABLE:局部变量ANNOTATION_TYPE:注解PACKAGE:包。

2024-02-27 08:48:49 2003

原创 java反射 校验对象中字段是否必填

java反射 对象必填字段

2024-02-26 09:33:10 855

原创 通过反射,把java对象中的BigDecimal类型属性赋值为0

反射,bigdecimal

2024-02-23 11:42:00 1154

原创 spring自定义全局异常处理@ControllerAdvice和@ExceptionHandler

@controllerAdvice、@ExceptionHandler

2024-02-02 15:11:40 801

原创 微服务中HandlerInterceptor 和 WebMvcConfigurer的关系,设置登录验证拦截

zuul拦截url spring拦截url Handler和Interceptor Handlerinterceptor和WebMvcConfigurer

2024-01-26 16:16:10 943

原创 程序员如何应对未来工作or生活

对组织而言,平衡工作和生活可以提高员工的工作效率和绩效,降低员工离职率和疲劳度,增强员工的忠诚度和归属感。作为程序员,在前面的十几年中我们赶上了一波热潮,有些人收获了不错的回报,随着时代的变化和技术的革新,我们应该积极应对未来的变化,并不断学习和适应新的技术和工具。工作与生活的平衡是一个长期的过程,需要不断调整和适应。每个人都可以根据自己的实际情况和需求,找到适合自己的平衡点,实现工作与生活的和谐。总而言之,作为程序员,持续学习、适应变化和发展多样化的技能是非常重要的。

2024-01-24 10:14:41 597

原创 mysql 函数group_concat 和find_in_set

FIND_IN_SET(str,strlist) : str 要查询的字符串,strlist 需查询的字段,参数以”,”分隔,该函数的作用是查询字段(strlist)中是否包含(str)的结果.表示求表table中id值为A,B,C,D的数据,跟下面的sql一个含义。结果:0 strlist中不存在str,所以返回0。将一个字段的值拆分成多行,字段值需要以逗号隔开。结果:2 B在strlist集合中2的位置。结果:1 A在strlist集合中1的位置。将多行数据按照某个条件合并成一行。

2024-01-19 15:23:30 584

空空如也

空空如也

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

TA关注的人

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