- 博客(54)
- 收藏
- 关注
原创 AI代码自动生成和部署
摘要:本文介绍了AI代码自动生成和部署的常用工具,涵盖代码生成(如GitHub Copilot、Tabnine)、代码审查(如Snyk Code)、自动化测试(如Applitools)、CI/CD集成(如GitHub Actions)以及端到端ML平台(如SageMaker、Azure ML)。还列举了模型部署专用工具(如Seldon Core、Cortex),并建议根据项目需求选择合适工具组合。最后提供了Inscode相关链接供参考。(149字)
2025-12-17 15:55:34
512
原创 制作ftl文件通过FreeMarke生成PDF文件(含图片处理)
本文全面介绍FreeMarker模板文件(FTL)的使用方法。FTL是一种基于模板生成文本输出的技术,具有分离表现层与业务逻辑、支持多种输出格式等特点。文章详细讲解FTL文件的创建方法(包括从Word模板转换和直接创建)、项目配置(Maven依赖和Spring Boot配置)、核心代码示例以及模板语法(变量替换、条件判断、循环遍历等)。最后提供了最佳实践建议(模板管理、错误处理等)和常见问题解决方案(文件找不到、中文乱码等),并列举了动态页面生成、文档生成等应用场景。全文涵盖FTL从基础到实践的完整知识体系
2025-12-17 15:55:01
787
原创 Java EasyExcel创建复杂表格的完整指南:WriteTable
EasyExcel的WriteTable组件支持在单个Excel表单中创建多个独立表格区域,适用于复杂报表场景。核心功能包括相对位置定位、多级表头支持、样式定制和大数据处理能力。通过Maven引入依赖后,需定义数据模型实体类并标注@ExcelProperty注解。实现时通过WriteSheet和WriteTable对象配置表格位置和样式,结合ExcelWriter写入数据。高级特性支持嵌套表头定义和自定义样式策略,满足企业级报表需求,同时保持EasyExcel的高效数据处理性能。典型应用包括财务分析、数据汇
2025-12-07 20:38:02
851
原创 @RequiredArgsConstructor和@Autowired依赖注入对比
Java依赖注入中,@Autowired和@RequiredArgsConstructor是两种常用方式。@Autowired是Spring原生注解,支持字段/方法/构造器注入,需显式声明依赖;@RequiredArgsConstructor是Lombok提供的编译时生成构造器的工具,通过final字段隐式声明依赖。二者主要区别在于:@Autowired更灵活但代码侵入性强,@RequiredArgsConstructor能减少模板代码但仅适用于构造器注入。最佳实践推荐在Spring 4.3+中使用@Req
2025-12-07 20:08:33
290
原创 升级mybatis-plus导致项目启动报错: net.sf.jsqlparser.statement.select.SelectBody
摘要: 升级MyBatis-Plus至3.5.7后出现NoClassDefFoundError: net.sf.jsqlparser.statement.select.SelectBody错误,原因是与PageHelper分页组件中的JSqlParser版本冲突。解决方案包括:1)排除MyBatis-Plus中的JSqlParser依赖(推荐);2)调整依赖顺序,优先加载PageHelper的JSqlParser版本。
2025-11-03 16:17:54
754
原创 前后端交互:Form Data与Request Payload的核心区别与应用
Form Data和Request Payload是前后端交互中两种常见的数据传输格式。Form Data主要用于传统表单提交和文件上传,支持application/x-www-form-urlencoded和multipart/form-data两种编码方式;Request Payload则适用于RESTful API交互,通常以JSON格式传输复杂数据结构。两者的核心区别体现在数据格式、处理机制和后端接收方式上。实际开发中应根据具体场景选择:表单提交和文件上传使用Form Data,RESTful AP
2025-11-03 16:17:15
1122
原创 常用的三种加密算法
本文介绍了加密算法的两大主要类型:对称加密和非对称加密。对称加密使用单一密钥(如AES、DES),加解密效率高但密钥管理困难;非对称加密使用公私钥对(如RSA、ECC),解决了密钥分发问题但计算开销较大。文中还提供了AES和RSA算法的Java实现示例,展示了加密和解密的具体操作过程。这些算法在数据安全传输和存储中发挥着关键作用。
2025-07-20 15:59:01
843
原创 MySQL 中 DATE、DATETIME 和 TIMESTAMP 的区别
MySQL中的DATE、DATETIME和TIMESTAMP是常用的时间数据类型。DATE仅存储日期(YYYY-MM-DD),范围1000-9999年,占3字节;DATETIME存储日期和时间(YYYY-MM-DD HH:MM:SS),范围1000-9999年,占5-8字节;TIMESTAMP也存储时间但会转换为UTC,范围1970-2038年,占4字节且支持自动更新。DATETIME和TIMESTAMP格式相同,但TIMESTAMP会进行时区转换。TIME存储时间(HH:MM:SS),YEAR存储年份。选
2025-06-26 15:31:54
1159
原创 MyBatis-Plus 中 的动态SQL 片段(sqlSegment)讲解
在 MyBatis-Plus 中,`sqlSegment` 通常指 **动态生成的 SQL 代码块**,例如由条件构造器(`Wrapper`)自动生成的 `WHERE` 条件、`ORDER BY` 排序等。开发者可通过特定语法(如 `${ew.customSqlSegment}`或者`${ew.sqlSegment}`)将这些片段插入到自定义 SQL 中,实现灵活组合
2025-05-26 11:07:54
1678
原创 Maven项目中的核心配置文件POM.xml详解
pom.xml是Maven项目的核心配置文件,定义了项目的基本信息、依赖关系和构建配置。主要内容包括:项目坐标(groupId、artifactId、version)、基本信息(名称、描述)、依赖管理(依赖声明、范围控制)、构建配置(源码目录、插件设置)、多模块管理、仓库配置以及属性定义。该文件采用XML格式,通过合理配置可实现项目依赖管理、构建过程控制和多模块项目协调,是Maven项目管理的基础。
2025-05-26 10:50:17
1209
原创 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
853
原创 @ConfigurationProperties和@value的区别
在 Spring Boot 中,@ConfigurationProperties 和 @Value 是两种常用的配置注入注解,但它们在功能和使用场景上有显著差异。@ConfigurationProperties 适用于批量绑定一组相关属性到对象,支持类型安全、松散绑定和复杂结构(如嵌套对象、集合),适合集中管理复杂配置。@Value 则用于注入单个简单值,支持 SpEL 表达式和默认值,适合快速注入简单配置或动态计算值。选择时,若需管理复杂配置,推荐使用 @ConfigurationProperties;若
2025-05-23 10:48:21
1020
原创 XWPFDocument生成word文档介绍(格式 .docx)
是 Apache POI 库中用于操作.docx格式 Word 文档的核心类。它提供对文档内容(段落、表格、图片、样式等)的动态生成和修改能力,适用于需要自动化生成复杂 Word 文档的场景。在pom.xml中添加Apache POI依赖:</</</</
2025-04-28 09:39:06
1937
原创 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
1285
原创 Springdoc的常用注解(Swagger3标准的OpenAPI 3 规范)
规范先进:支持 OpenAPI 3.0,覆盖 WebSocket、异步接口等场景。兼容性强:完美适配 Spring Boot 2.6+ 和 3.x。配置简洁:通过注解和配置类即可实现复杂需求(如安全认证、多分组)。迁移时只需调整依赖、更新注解包路径,并参考上述对比表修改代码,即可快速升级到更健壮的 API 文档方案。
2025-04-17 09:15:00
2576
原创 分布式服务架构 vs 微服务架构:核心区别与适用场景详解
对比矩阵维度分布式服务架构微服务架构服务拆分按功能模块拆分(粗粒度)按业务能力拆分(细粒度)数据管理允许共享数据库,事务管理简单独立数据库,强最终一致性,事务复杂技术栈统一技术栈(如全Java)支持多语言(Go、Python、Java混合)部署与扩展模块级部署,扩展成本较高服务级部署,秒级扩缩容(K8s)团队协作集中式团队协作去中心化,多团队自治适用阶段系统演进中期,业务复杂度中等业务高速增长期,需快速试错。
2025-04-14 10:27:15
1355
原创 Java微服务架构:注册中心与配置中心
轻量级场景云原生架构:Nacos一站式解决方案企业级需求参考资料Nacos官方文档Apollo配置中心设计理念。
2025-04-14 10:26:48
1612
原创 AI编程工具Trae和Cursor对比
Trae凭借免费策略、中文支持和 Builder 模式,成为中文开发者快速实现创意的利器;Cursor则在复杂项目开发与生态整合上更具优势。若追求成本效益和本地化体验,Trae 是更优选择;若需深度开发能力,Cursor 仍是主流工具。
2025-04-01 16:57:25
2702
1
原创 IntelliJIDEA中实现Spring Boot多实例运行:修改配置与批量启动详解
通过 修改配置和 批量启动两种方式,可在IDEA中轻松实现Spring Boot多实例运行:简单调试:优先使用VM参数快速切换端口。复杂场景:通过多配置文件和批量启动模拟集群环境。避坑指南:关注端口冲突、配置隔离和注册中心健康状态。
2025-03-24 22:24:41
3138
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
1573
原创 IntelliJ IDEA 中 Git 高频问题与操作详解|新手避坑指南
提交前:对比差异,写清注释合并前:先拉代码,减少冲突分支管理:命名规范,定期清理后悔药:善用 Stash 和 Reset实战 QA❓问:IDEA 中如何快速查看当前文件的修改状态?✅答蓝色:已修改未提交绿色:新文件未跟踪灰色:未修改❓问:推送代码时提示 “non-fast-forward” 错误怎么办?✅答:说明远程有更新,先执行Pull→ 解决冲突 → 重新推送。
2025-03-19 20:13:24
1360
原创 IntelliJ IDEA新建文件配置作者信息、日期和描述等
在使用 IntelliJ IDEA 进行开发时,我们经常需要在新建的文件中添加作者信息、创建日期和文件描述等注释。幸运的是,IntelliJ IDEA 提供了强大的文件模板功能,可以帮助我们自动生成这些信息。通过 IntelliJ IDEA 的文件模板功能,我们可以轻松地为新建文件添加作者信息、日期和描述等内容。例如,将文件头信息提取到一个公共模板中,然后在多个文件类型中引用。这样,每次新建一个 Java 类时,IDEA 都会自动生成包含作者、日期和描述信息的注释。在模板内容中添加注释,使用预定义的变量。
2025-03-19 19:57:40
3135
原创 MySQL 批量插入 vs 逐条插
批量插入:速度快,适合大数据量。逐条插入:灵活性高,适合小数据量或实时插入。根据你的需求选择合适的方式,能让你的程序跑得更快更高效!一句话总结:能批量插入就别逐条插,效率高得多!希望这篇文章对你有帮助!如果有问题,欢迎留言讨论~
2025-03-14 19:12:04
913
原创 如何关闭和打开本地的mysql
运维刚需:开发调试、系统维护时频繁需要操作数据库服务跨平台差异:不同操作系统操作方式迥异(Windows图形化 vs Linux命令式)避坑指南:80%的服务异常可通过正确启停操作解决系统现象修复方法Windows拒绝访问右键CMD选择【以管理员身份运行】Linux命令前加sudo或切换root用户macOS检查系统偏好设置→安全性与隐私。
2025-03-14 19:11:45
1112
原创 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
5079
原创 MySQL快速检测字段值是否包含大写的精简指南
⚠️ 避免全表扫描:BINARY和REGEXP会使查询效率下降30%+✅ 查询技巧:结合LIMIT 1快速判断是否存在大写。✅ 优先方案:对常检测字段建立预处理列+索引。
2025-03-03 15:45:26
522
原创 JAVA垂直越权和水平越权
水平越权(Horizontal Privilege Escalation)定义:同一权限等级的用户之间,通过非法手段访问或操作其他用户的资源。示例用户A通过篡改URL参数(如订单ID)访问用户B的订单信息。用户绕过权限验证,通过API直接获取他人数据。常见原因服务端未校验资源归属,如数据库查询未关联当前用户ID。依赖客户端传递的参数(如用户ID)进行权限判断,未在服务端二次验证。防范措施强制资源关联用户:在数据库查询中,始终将当前用户ID作为条件(如服务端校验。
2025-03-03 15:44:41
1527
原创 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
4677
原创 IDEA接入DeepSeek最新教程Proxy AI(codeGpt) [2025版]
此时,在右侧就有一个codeGPT的图标,打开后就能输入文字进行对话了,这种配置的大模型属于在线的,连接deepseek的官方api,有时候会有网络卡顿问题,多试几次。2.那怎么办呢,我们其实还可以对接其他免费的大模型,或者使用目前codeGpt自带的,也可以自己本地部署deepseek,然后用ollama配置,可以参考。左侧其他选型也是各种大模型。1.对话,显示Insufficient Balance(余额不足) ,这时候,才发现目前对接deepseek已经用不了,哦豁!
2025-02-22 17:29:29
11880
8
原创 EasyExcel 读取模板 复杂表格填充
1.占位符在根据模版导出数据时,要预先设置占位符。包括,单个数据占位符和列表数据占位符。单个占位符:{字段名} 如:{name}列表占位符:{.字段名} 如:{.age},如果一个表格中有多个数据列,占位符前要加前缀,如:{t1.id}、{t2.name}2.如果需要配置多个list,可以用new FillWrapper 申请别名:3.碰到输入的文件名和文件内容乱码:引起原因是项目的编码不是UTF-8,更改即可。
2025-02-15 15:22:03
2011
原创 常见的开源工具(代码托管平台)都有哪些
它不仅提供了项目管理、代码管理、文档管理和效能度量等多种功能,还支持扫描和CI/CD工具。Gitee的开发者超过1200万,托管项目超过2800万,并于2016年推出企业版,提供企业级代码托管服务,成为开发领域领先的SaaS服务提供商。此外,Gitee还坚持「国产信创」信念,成为「信创」产业体系会员单位,主张通过一站式DevOps平台帮助中国企业提质增效、实现产业升级,缩小与国际最高水平的差距,防止国产软件基础工具陷入「卡脖子」的危机。Gitee(码云)是。
2024-07-11 17:45:02
1971
原创 一个接口有多个实现类,@Autowired注入map方式初始化实现类并统一调用(策略模式)
初始化所有的OrderService实现类并通过OrderFactory 来调用具体的实现类Map String参数 是定义的service的类名,可以使用@Component(“AA”) 重命名为AA@Slf4j@Service/***策略模式*会在spring启动时把所有OrderService加载到map中*关键在于 @Autowired**/@Autowired");定义一个接口,用于提供统一的调用方法/***处理订单。
2024-02-29 09:05:00
1759
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅