自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 本地事务与分布式事务

本文系统梳理了事务体系的核心概念与应用场景。首先定义了事务的ACID特性,然后详细介绍了本地事务的特点与局限性(仅适用于单服务单数据库)。针对微服务架构下跨服务事务的需求,分析了分布式事务的必要性,并对比了XA、TCC、AT、Saga等主流方案的技术特点。特别强调了最终一致性作为高并发场景的优选方案。最后通过对比表总结了本地事务、分布式事务和最终一致性事务的适用场景与特性差异,明确指出@Transactional仅适用于本地事务场景,不能解决分布式事务问题。全文为开发者提供了清晰的事务技术选型指南。

2025-11-30 20:29:02 903

原创 java中file与io流的关系

本文介绍了Java中File和InputStream的区别与联系。File是文件路径的抽象表示,仅包含文件属性信息,不能直接读取内容;InputStream是数据流,用于实际读取文件内容。两者配合使用时,File指明文件位置,FileInputStream实现具体读取操作。文章通过代码示例展示了从File创建InputStream读取数据的过程,并说明了在POI库中处理Excel文件时的典型应用场景。核心概念是:File描述文件位置和属性,InputStream负责内容读取,二者结合实现完整的文件操作功能。

2025-11-30 18:52:04 164

原创 Java 中读取文件的几种方式,以及什么时候用 new File()、绝对路径或者类路径(ClassLoader)形式

静态配置文件(application.properties 外的额外配置)只能读取 jar 内或者 classpath 下的资源。如果程序打包成 jar,jar 内部的资源无法通过。相对路径在不同操作系统、不同启动目录下可能找不到文件。依赖 JVM 的工作目录(一般是启动命令所在目录)不希望依赖文件系统,打包成 jar 后依然可用。用户上传、日志、临时文件、外部配置文件等。在任何地方都可以找到,只要该路径存在。你不能把文件打包到 jar 中再读取。模板文件(Excel、Word),和程序打包方式无关。

2025-11-30 18:48:23 227

原创 Apache POI 介绍

Apache POI是一个开源的Java库,用于操作Microsoft Office格式文件,包括Excel、Word、PowerPoint等。它支持读取、写入和修改Office文档,无需安装Office软件。POI提供多个模块分别处理不同格式,如HSSF处理.xls文件,XSSF处理.xlsx文件。核心功能包括单元格操作、样式设置、文档元数据处理等。使用时需注意性能问题(大文件推荐SXSSF)、版本兼容性和异常处理。POI适用于报表生成、数据导入导出等场景,是Java操作Office文件的标准解决方案。

2025-11-30 17:10:26 608

原创 Java Stream 流详解

Java Stream流摘要 Stream是Java 8引入的函数式数据处理工具,用于简化集合操作。它具有声明式编程风格、惰性求值和并行处理能力。Stream操作分为中间操作(如filter、map、sorted)和终止操作(如forEach、collect)。使用时遵循"获取流→中间操作→终止操作"流程,且每个Stream只能消费一次。相比传统for循环,Stream代码更简洁易读,支持自动并行化,特别适合集合流水线处理。但需注意Stream不是万能方案,某些场景传统循环可能更高效。

2025-11-30 15:07:20 1025

原创 Spring Task 使用指南

Spring Task 是 Spring 框架提供的轻量级定时任务模块,通过 @EnableScheduling 和 @Scheduled 注解实现周期性、延迟或异步任务。核心功能包括固定频率(fixedRate)、固定延迟(fixedDelay)和Cron表达式调度,默认单线程执行但可配置线程池优化性能。在Spring Boot中只需简单注解即可使用,适用于后台任务、定时作业等场景。需注意任务方法需无参void返回类型,涉及共享资源时要考虑线程安全。

2025-11-29 15:57:38 266

原创 Spring Boot 中的 Spring Cache 框架详解

本文详细介绍了Spring Boot中的Spring Cache框架。Spring Cache是Spring提供的统一缓存抽象层,通过注解形式简化缓存逻辑,支持多种缓存实现。文章讲解了常用注解如@Cacheable(查询缓存)、@CachePut(更新缓存)和@CacheEvict(删除缓存)的用法,以及与Redis集成的配置步骤。还涵盖了缓存key的SpEL写法、常见问题及解决方案,并给出了缓存使用的最佳实践建议。开发者可以通过这些注解轻松实现自动缓存管理,提高应用性能。

2025-11-27 16:46:20 340

原创 SpringBoot 与序列化相关问题总结

SpringBoot序列化问题总结:@Bean方法参数支持自动注入;序列化器用于对象与传输格式的转换。SpringMVC默认使用Jackson返回JSON,而RedisTemplate等存储组件不会自动使用Jackson,需手动配置序列化器(如StringRedisSerializer)。不同组件默认序列化方式不同:HTTP层自动用Jackson,存储层默认JDK序列化,需开发者根据场景自行配置。核心结论:SpringBoot仅在HTTP JSON场景自动使用Jackson,其他组件需手动配置序列化方案。

2025-11-26 11:13:15 578

原创 Java 切面与反射问题总结

摘要: Java切面中使用反射的核心原因是处理运行时未知类型的对象。在AutoFillAspect等切面中,反射允许动态调用不同实体类的方法(如setCreateTime),实现公共字段自动填充,无需修改现有类结构。反射适用于框架开发、动态调用等场景,但因其性能开销,不推荐在类型已知或性能敏感处使用。替代方案可通过统一接口实现,但反射的通用性和无侵入性使其成为切面处理的理想选择。

2025-11-23 18:37:33 208

原创 Java 切面(AOP)与注解总结

本文总结了Java中切面(AOP)与注解的关系。切面用于封装跨业务方法的公共逻辑(如日志、权限等),包含切面、通知、切点等核心概念。注解常作为触发切面逻辑的"标记",通过自定义注解和切面配合使用,实现非侵入式的功能增强(如日志记录)。Spring中许多功能(@Transactional等)都基于"注解+AOP"模式。总结来说,注解是切面的入口标记,切面则是注解背后的实现逻辑,两者配合可实现解耦的业务增强。

2025-11-23 15:56:19 306

原创 【无标题】

ThreadLocal是Java提供的线程本地变量机制,为每个线程创建独立的数据副本,实现线程间数据隔离。它通过ThreadLocalMap存储数据,key为弱引用的ThreadLocal,value为强引用。主要用途包括保存用户信息、数据库连接等线程不安全对象。使用时需遵循声明、set、get、remove的基本流程,尤其注意必须调用remove()避免内存泄漏(当ThreadLocal被回收而线程存活时,value无法被访问)。典型应用场景是请求上下文管理和线程不安全工具类(如SimpleDateFor

2025-11-22 12:21:13 314

原创 前端请求到底是从哪里发出去的?

前端请求是从用户的浏览器发出的,而不是从前端服务器。常见误区包括认为前端代码在服务器上运行或服务器会代发请求。实际流程是:浏览器获取HTML/JS文件后执行代码,直接向后端API发起请求。DevTools能查看请求正是因为浏览器是请求的发起者和接收者。前端服务器仅负责传输静态文件,不参与业务请求。

2025-11-21 20:06:10 397

原创 Spring Boot 多模块扫描问题总结

Spring Boot在多模块项目中能扫描到不同模块的类,关键在于运行时classpath的合并。启动类在com.sky下时,会扫描其所有子包,包括server和common模块中的类。虽然IDEA显示模块分开,但运行时JVM会将模块输出目录合并,使com.sky下同时存在server和common子包。因此,只要包路径在扫描范围内,Spring Boot就能识别所有模块中的类,与源码模块结构无关。

2025-11-21 17:48:11 682

原创 Nginx 配置与反向代理常见问题总结

本文总结了Nginx配置与反向代理的常见问题。主要内容包括:1) Nginx.conf文件解析,涉及全局设置、事件块、http块和server块配置;2) 静态页面与接口代理原理,浏览器通过Nginx访问静态资源并代理后端请求;3) 后端服务器可配置为远程服务且不会产生跨域问题;4) 浏览器始终与Nginx交互,接口请求也通过Nginx代理;5) 相对地址请求不会触发跨域限制。总结指出Nginx通过统一代理消除跨域问题,配置时需注意路径重写、HTTPS支持和WebSocket特殊配置。

2025-11-21 14:07:40 309

原创 springvalidation

Spring Validation是Spring Boot中用于数据验证的机制,基于JSR-303规范,主要依赖Hibernate Validator实现。通过注解如@NotNull、@Size等定义验证规则,在控制器方法中使用@Valid触发验证。验证失败会抛出MethodArgumentNotValidException,可通过全局异常处理自定义错误响应。支持嵌套对象验证和校验分组功能,适用于不同业务场景。该机制简化了请求数据的校验流程,提高开发效率。

2025-11-21 13:30:57 373

原创 java后端如何实现下载功能

摘要:后端将多个文件编码为ZIP格式的二进制流,通过HTTP响应返回,设置Content-Type为application/zip,并添加Content-Disposition头部指定文件名。浏览器收到响应后会自动弹出保存对话框,提示用户下载ZIP文件。这种方法实现了多文件的打包下载功能。

2025-08-25 22:28:11 473

原创 javaWeb中请求的流程

HTTP请求 → Filter(过滤器) → Interceptor(拦截器) → Controller。

2025-06-13 11:30:29 251

原创 OCRS跨域问题

rewrite: (path) => path.replace(/^\/api/, ''), // 可选:是否移除 /api 前缀。rewrite: (path) => path.replace(/^\/api/, ''), // 可选:去掉 /api 前缀。vue前端页面,在发送请求时,如:axios.get(‘/api/thing/list’)如果是相对地址,前端会自动拼接前端所运行的地址如。// ✅ 会被代理到 http://127.0.0.1:9100/thing/list。

2025-06-13 11:17:11 934

原创 MySQL 关联查询速查笔记

MySQL关联查询速查笔记。核心关联类型包括INNER JOIN(严格匹配)、LEFT JOIN(保留左表)、RIGHT JOIN(保留右表)和FULL JOIN(保留两表)。提供基础关联、带聚合统计和多表级联三种查询模板。性能优化要点:关联字段必加索引,避免SELECT *,小表驱动大表。方案选型对比:关联查询适用于数据量小的实时场景,同步字段适合大数据量统计查询。

2025-06-04 10:18:20 500

原创 百度查询的ip与命令行输入 ipconfig 显示的IP地址有以下主要区别:

(LAN IP),通常是路由器分配给设备的私有地址(如192.168.x.x、10.x.x.x等),仅用于局域网内部通信。大多数家庭或企业网络通过路由器使用NAT(网络地址转换)技术,将多个设备的本地IP映射到一个公网IP上。公网IP需要通过第三方服务(如图中的百度智能云)或访问“我的IP”类网站(如ip138.com)获取。:这是你的路由器在互联网上的唯一标识,外部服务器(如网站、游戏等)看到的IP,用于全球通信。公网IP是全球唯一的,可被互联网上的其他设备访问(需权限)。

2025-03-31 13:45:07 1219

原创 UML中的用例图和类图

和用户(或其他系统)与系统的交互,聚焦于**“系统做什么”**,而不关心具体实现细节。,展示类、接口、属性、方法以及它们之间的关系,聚焦于**“系统如何构建”**。:用例或参与者之间的继承关系(如“VIP用户”继承自“普通用户”)。:一个用例必须调用另一个用例(如“支付”必须包含“验证密码”)。:强“整体-部分”关系,生命周期一致(如“公司”与“部门”)。:一个类的变化影响另一个类(如“订单”依赖“支付服务”)。:弱“整体-部分”关系(如“汽车”与“轮胎”)。:类之间的引用(如“学生”与“课程”)。

2025-03-31 10:07:59 1029

原创 JSP 与 JavaScript 动态网页开发的比较

JavaScript和JSP(或类似SSR技术)不是非此即彼的关系,而是互补的技术。现代Web开发通常结合两者优势:服务器端渲染核心内容,客户端JavaScript增强交互体验。:如Spring MVC、Next.js(Nuxt.js)直接访问服务器资源,避免额外的API请求。适合内容型网站(新闻、电商产品页等)JSP模板可以方便地组织页面结构。需要直接访问服务器资源的场景。首屏加载更快,SEO更友好。与Java后端逻辑无缝集成。需要良好SEO的页面。高度交互的Web应用。前后端完全分离的架构。

2025-03-28 19:19:28 479

原创 SEO(搜索引擎优化)详解

SEO是的缩写,中文称为"搜索引擎优化"。它是指通过一系列技术和方法,提高网站在搜索引擎自然(非付费)搜索结果中的排名,从而获得更多流量的过程。

2025-03-28 19:18:56 959

原创 转发和重定向

转发和重定向转发是一次请求,服务器共享同一个请求只能访问当前工程的地址重定向是两次请求,第一次请求返回给浏览器,由浏览器发送第二次请求部署项目时需要关注两个路径当前项目的部署路径(项目部署在web服务器的test文件夹下)tomact的根路径。

2025-03-28 18:57:24 374

原创 vue(脚手架开发中)main.js中引入后的vant(Toast)为什么还要在使用时手动引入

【代码】vue(脚手架开发中)main.js中引入后的vant(Toast)为什么还要在使用时手动引入。

2025-03-17 09:52:21 604

原创 Git 克隆问题排查与解决方案

用户无法直接通过 HTTPS 克隆 GitHub 仓库,原因是网络屏蔽了 443 端口流量。Ping 成功但 HTTPS 失败表明限制针对特定端口。推荐解决方案:配置代理(需提供代理信息)。使用 SSH(需配置密钥)。切换无限制网络。

2025-03-14 18:58:54 1951

原创 Redis常见的启动错误和误解

你之前将 Redis 安装为 Windows 服务(例如使用 redis-server --service-install),它会在后台运行而不会有前台窗口。默认情况下,安装为服务后 Redis 会自动设置为开机启动。如果你希望 Redis 在每次开机时自动启动,且无需手动干预,可以将其作为 Windows 服务运行。按 Win + R,输入 services.msc,找到 Redis 服务,右键单击选择“启动”。如果你不需要 Redis 作为服务运行,只想偶尔手动启动,可以卸载服务并按需运行。

2025-03-10 21:43:11 797

原创 Vue 中地址栏参数与 HTTP 请求参数的同步问题

axios。

2025-03-09 01:06:00 541

原创 代理与 hosts 文件冲突问题解决方案

代理工具排除本地域名→ 确保*.test和127.0.0.1不经过代理。检查本地服务状态→ 确认服务运行且端口无冲突。处理 HTTPS 证书→ 信任自签名证书或关闭代理对 HTTPS 的拦截。通过以上步骤,应能解决代理与hosts文件冲突的问题。如果问题依旧,请提供具体代理工具名称和错误信息,以便进一步排查。

2025-03-06 17:13:49 1356

原创 互联网核心技术概念笔记

对象存储(Object Storage)是一种用来存放大文件的存储方式,比如图片、视频、文档等。它不像传统硬盘那样按文件夹管理,而是把每个文件当作一个“对象”,用唯一的 ID 来识别。反向代理(Reverse Proxy)就像一个“中间人”,用户访问网站时,不是直接连到后台服务器,而是先经过这个代理服务器,代理再把请求转发给后台。函数计算(Function Compute)是一种“无服务器”(Serverless)的计算方式。你只管写代码(函数),不用操心服务器的搭建、运维,交给云服务商运行。

2025-02-26 16:35:02 1071

原创 Redis

redis的基本概念和操作

2024-12-27 10:30:25 2485

原创 私服配置说明

如果需要上传自己的项目到私服上,需要在项目的pom.xml文件中,增加如下配置,来配置项目发布的地址(也就是私服的地址)发布项目,直接运行 deploy 生命周期即可 (发布时,建议跳过单元测试)中只配置我们自己私服的连接地址(如果之前配置过阿里云,需要直接替换掉)中,增加如下配置,来指定snapshot快照版本的依赖,依然允许使用。访问私服:http://192.168.150.101:8081。标签中,配置访问私服的个人凭证(访问的用户名和密码)访问密码:admin/admin。

2024-12-24 11:46:48 515

原创 Maven高级

.....

2024-12-24 11:44:03 345

原创 Spring Boot开发入门

传统的的框架ssm(Spring、SpringMVC、和MyBatis)部署比较繁杂,Springboot问世,它进行了框架的进一步整合,将重复性的代码或者配置进行了封装,以及提供了统一的Maven的jar管理Spring Data用来做数据访问操作(可以访问关系型数据库和非关系型数据库)。SpringBoot将Spring Data进行了封装和整合,形成新的启动器名称描述Spring Data JPA与Hibernate的启动器MongoDB和Spring Data MongoDB的启动器。

2024-12-23 12:57:19 1099

原创 开发规范Restful

○REST(REpresentational State Transfer),表述性状态转换,它是一种软件架构风格。GET:查询id为1的用户。开发规范-Restful。

2024-12-03 20:23:44 211

原创 接口的类比

接口定义:在编程中,接口定义了某个功能或服务的契约,规定了外部如何与实现者进行交互。接口本身不关心实现细节,只规定了如何调用它。插座:插座是一个物理装置,它提供了一个标准化的连接点,以便插头(即接口的实现)可以接入。它定义了电器设备如何连接到电力源或者其他设备,类似于接口提供的“接入点”——它定义了外部如何与设备(或者说接口的实现)进行交互。插座类似于接口的定义,它定义了连接的标准和契约,允许插头(接口的实现)与其连接和交互。插头则是具体的实现,它符合插座的标准,完成与插座的连接和功能实现。

2024-12-02 17:40:50 249

原创 Oracle JDBC API

Oracle JDBC API 让 Java 开发人员能够通过 Java 程序与 Oracle 数据库进行交互,实现数据的存取、更新和事务处理等功能。所以,您可以理解它是 Oracle 提供的一个 API,专门让 Java 程序员通过标准的 JDBC 接口访问和操作 Oracle 数据库。是 Java 提供的一种标准 API,它定义了如何通过 Java 程序与数据库进行交互。

2024-12-02 16:50:48 547

原创 通过docker部署ollama web界面还需要在本地在下载ollama吗

如果你通过 Docker 部署或其他模型的 Web UI,一般情况下。因为 Docker 镜像已经包含了所有必要的依赖和应用程序,这意味着镜像中已经包括了 Ollama 所需要的所有内容。

2024-11-30 16:11:03 798

原创 Ollama提供的WebUI界面

提供了一个界面,旨在让用户能够更方便地通过浏览器与本地运行的 LLaMA 模型进行交互。这个 Web 界面通常用于简化与 AI 模型的对话过程,提供直观的图形化界面,以便更轻松地生成文本、回答问题、进行对话等操作。

2024-11-30 16:04:30 5256

原创 什么是.msi文件

msi文件是文件,通常用于 Windows 操作系统上进行软件的安装和维护。.msi是一种特定格式的安装包,包含了软件安装所需的所有资源、配置文件和注册信息。它是 Windows 安装系统的一部分,通过服务来管理软件的安装、更新和删除。.msi。

2024-11-29 17:46:11 4990

空空如也

空空如也

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

TA关注的人

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