自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何配置frp

通过上述步骤,您可以使用FRP将公司内网的服务暴露给外部访问,或者通过它从家庭网络访问公司内网资源。FRP灵活易用,适合搭建内网穿透服务。

2024-10-17 11:33:30 239

原创 nginx使用正则匹配统一模式

可以使用正则表达式匹配所有以dist-开头的路径,并将其配置为一个通用的location模板。

2024-10-08 11:51:10 265

原创 @/ConfigurationProperties详解

提供了灵活、易用的方式来将配置文件中的内容映射到 Java 类中。它支持复杂的嵌套结构、列表、Map 类型,并且可以结合JSR-303校验注解进行数据验证。适用于处理复杂配置场景,并提高配置管理的安全性和可维护性。

2024-10-08 11:49:48 1016

原创 Mysql上实现物化视图的功能

在 MySQL 中,物化视图(Materialized View)并不像某些数据库(如 Oracle、PostgreSQL)那样作为一个内置特性存在。物化视图本质上是一个定期更新的视图,它的结果会存储在磁盘上,供后续查询使用,而不需要每次查询时重新计算数据。

2024-09-21 11:21:32 698

原创 curl 的使用详解

curl是一个非常强大的命令行工具,用于通过各种协议(如 HTTP、HTTPS、FTP 等)传输数据。它广泛应用于测试 API、下载文件、调试网络请求等。下面是curl。

2024-09-16 11:10:47 1235

原创 mysql 触发器的使用以及利弊

*触发器(Trigger)**是在表的某些事件(如插入、更新、删除)发生时,自动执行的一段 SQL 语句。触发器在 MySQL 数据库中可以用于保证数据的一致性、自动处理一些复杂的逻辑等。触发器适合处理需要自动记录、同步或管理数据的场景。然而,由于其对性能和调试的影响,不建议在高负载的场景中频繁使用。触发器的业务逻辑应尽量保持简单、清晰,不应将复杂逻辑埋在触发器中。表,每次插入一条新订单时,需要在。

2024-09-14 16:00:42 626

原创 职场 Death Note

职场上总会遇见一些SB

2024-09-14 15:31:50 626

原创 jackson 中常用注解说明

Jackson 是一个流行的 JSON 序列化和反序列化库,提供了丰富的注解来控制对象与 JSON 之间的转换过程。

2024-09-11 11:10:09 644

原创 @Async的使用说明

然后,在需要异步执行的方法上加上@Async注解。注意,异步方法需要返回void或Future类型(如// 模拟耗时操作 try {} System . out . println("异步方法执行完成");try {} return CompletableFuture . completedFuture("异步方法带返回值执行完成");} }// 模拟耗时操作 try {} System . out . println("异步方法执行完成");try {

2024-09-10 14:07:55 321

原创 TCP 三次握手和四次挥手

三次握手的核心目的是确保双向的同步:第一次握手:客户端发送SYN,告知服务器自己可以发送数据。第二次握手:服务器响应SYN-ACK,告知客户端它收到了请求,并且它也可以发送数据。第三次握手:客户端确认收到服务器的响应,确保连接的双向通信是可靠的。如果只有两次握手,服务器无法确认客户端是否收到了它的确认信息,可能导致不稳定的连接。

2024-09-10 09:40:56 739

原创 mysql 中对锁的操作详解

在 MySQL 中,锁是用来控制多个事务对数据的并发访问,以确保数据的一致性和完整性。不同类型的锁用于不同的场景。

2024-09-09 13:41:56 477

原创 Java8 Stream流的基本使用

Java 8StreamAPI 提供了非常强大的声明式操作集合的方式。通过中间操作可以实现复杂的流水线式操作,终端操作则负责最终的结果计算。StreamAPI 简化了数据处理逻辑,特别是通过并行流可以提高性能,使得处理大数据集变得更加高效和直观。

2024-09-06 08:40:56 1069

原创 @Transactional 参数详解

事务是一种确保数据库操作要么全部成功,要么全部失败的机制,确保数据的一致性和完整性。: 事务超时时间,指定事务的超时时间(以秒为单位)。如果事务在指定的时间内没有完成,则会被强制回滚。如果抛出了这些异常类型中的任何一个,则事务不会回滚,即使。: 指定哪些异常类型会导致事务回滚。如果抛出了这些异常类型中的任何一个,则事务会被回滚。: 事务传播行为,指定事务的传播方式。: 事务隔离级别,指定事务的隔离级别。: 通过异常的类名指定哪些异常不会导致事务回滚。: 通过异常的类名指定哪些异常会导致事务回滚。

2024-09-05 18:44:45 848

原创 捕获异常的情况下仍然回滚事务

在 MyBatis-Plus 和 Spring 的事务管理机制中,事务的回滚行为与异常的传播有很大关系。如果你捕获了异常并且没有将它重新抛出,那么事务是不会回滚的。这是因为注解默认只在未捕获的异常向上传播到 Spring 的事务管理器时,才会触发回滚。捕获异常后,Spring 不再认为这个操作是失败的,事务将正常提交。

2024-09-05 15:57:06 769

原创 linux 查看java 进程

是最常用的查看进程的命令。是 Java 自带的工具,用于列出当前用户下的所有 Java 进程。可以直接根据进程名查找 PID。键排序以查看占用 CPU 较多的进程。如果需要查看完整的命令行参数,可以使用。来查找 Java 进程及其 PID。是 Java 进程的 PID。键可以进行关键字过滤,如输入。这些命令会实时更新显示进程信息。命令查看系统的所有进程,按。相关的所有进程的 PID。

2024-09-05 10:18:39 1525

原创 java8 stream流的扁平化操作

【代码】java8 stream流的扁平化操作。

2024-09-02 11:44:23 627

原创 Markdown 常用语法

请注意,使用 HTML 标签来更改样式可能不是所有 Markdown 渲染器都支持的,尤其是在受限的环境(如某些博客平台或 Markdown 编辑器)中。:一些 Markdown 渲染器(如 Markdown-it、Typora)支持插件或扩展语法,允许更复杂的样式设置。Markdown 本身不支持直接更改文本颜色,但可以使用一些扩展或通过 HTML 来实现。:对于支持 GFM 的平台,可以使用一些特殊语法(如不支持颜色设置)。:在 Markdown 中插入 HTML 标签来实现样式,例如使用。

2024-08-30 08:25:57 305

原创 springBoot 限制重复提交

首先,定义一个自定义注解,用于标记需要限制重复提交的接口。// 超时时间,单位毫秒 }// 超时时间,单位毫秒 }// 超时时间,单位毫秒 }// 超时时间,单位毫秒 }// 超时时间,单位毫秒 }Retention;// 超时时间,单位毫秒 }// 超时时间,单位毫秒 }// 超时时间,单位毫秒 }// 超时时间,单位毫秒 }Target;// 超时时间,单位毫秒在需要限制重复提交的接口上添加注解。

2024-08-29 19:30:16 476

原创 在日常编码与自我提升之间找到平衡的艺术

在编程世界中,技术不断更新迭代,项目要求日益复杂,程序员面临着双重压力:一方面是完成日常编码任务的高效需求,另一方面是不断学习新技术、深化专业知识的个人成长需求。如何在繁忙的工作中找到自我提升的时间?这似乎成了每个程序员都需要面对的难题。其实,在高效工作和自我提升之间,我们可以找到一个平衡点,让二者相辅相成,互利共赢。

2024-08-28 08:51:24 395

原创 在 Java 中使用泛型时遇到的问题,,无法正确将响应数据映射为需要的数据

创建一个 ParameterizedTypeReference 的子类:在实际调用时明确指定泛型类型 T。使用 TypeFactory 提供准确的类型信息:确保 Jackson 能获取正确的类型信息。// 使用 TypeFactory 创建泛型类型uri,

2024-08-27 18:50:04 291

原创 Quartz CronTrigger用法

是 Quartz Scheduler 中的一种触发器,它使用 Cron 表达式来定义复杂的调度计划。Cron 表达式允许你定义基于特定时间表的任务调度,例如每天的某个时间、每周的某几天等。下面是关于的基本用法说明。

2024-08-13 15:02:23 430

原创 Quartz SimpleTrigger 用法

是 Quartz Scheduler 中的一种触发器,它用于定义一个简单的定时任务。与不同,更适合用于那些基于固定间隔的任务调度。下面是一些关于的基本用法说明。

2024-08-13 14:59:15 513

原创 FactoryBean和BeanFactory区别

是一个接口,允许用户自定义 bean 的创建过程,可以返回与类型不同的对象。是 Spring IoC 容器的基础接口,负责管理和创建 Spring 应用中的所有 bean。主要用于自定义 bean 的创建,而是管理和注入 bean 的核心容器接口。

2024-08-12 15:25:31 343

原创 SpringBoot Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported

当你在 Spring Boot 应用中看到错误时,通常意味着服务器期望接收的请求内容类型与客户端发送的不一致。通常在 RESTful API 场景下,服务器可能期望接收或其他内容类型,但客户端发送了类型的数据。

2024-08-12 09:05:37 1555

原创 Spring循环依赖解决方法及原理

Spring通过三级缓存机制(一级缓存、二级缓存和三级缓存)解决循环依赖问题。这种机制允许Spring在Bean尚未完全初始化之前,提前暴露Bean引用,从而打破循环依赖的环。这种设计既保证了Bean的依赖注入,又避免了循环依赖导致的死锁问题。

2024-08-05 10:27:20 452

原创 静态代理与动态代理区别?

静态代理和动态代理是Java中常用的两种代理模式,用于为目标对象提供额外的功能。

2024-08-05 09:11:36 371

原创 单例模式的写法?

单例模式(Singleton Pattern)确保一个类只有一个实例,并提供一个全局访问点。

2024-08-02 07:30:00 549

原创 设计模式的类别

这些模式关注于如何创建对象。它们通过提供一个创建对象的机制,来隐藏对象创建的复杂性。:这些模式关注于如何将类和对象组合成更大的结构,以便它们能够更高效地工作。这些模式可以帮助解决常见的设计问题,使系统更灵活、更可维护。:这些模式关注于对象之间的交互和职责的分配。

2024-08-02 06:15:00 322

原创 设计模式的原则

高层模块不应该依赖于低层模块,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。这样可以减少模块之间的耦合,提高系统的灵活性和可维护性。也就是说,子类应该完全遵循父类的行为协议,保证子类的实例能够在任何使用父类实例的地方正常工作。也就是说,一个接口应该尽量小而专一,不应该包含过多的功能,以避免客户端只为了实现某些功能而被迫依赖不必要的方法。:一个类应该只有一个单一的职责,即该类应该只有一个引起它变化的原因。换句话说,你应该能够在不修改现有代码的情况下扩展系统的功能。

2024-08-01 15:59:27 601

原创 Springboot+Websocket+Security+Vue 实现弹幕推送功能

【代码】Springboot+Websocket+Security+Vue 实现弹幕推送功能。

2024-08-01 15:03:43 877

原创 针对datax-web 中Swagger UI接口未授权访问

application.yml 添加以下配置 实现访问doc.html 以及/v2/api-docs 接口时需要进行简单的校验。配置重启后再进行相关访问则需要输入用户名和密码。

2024-07-26 15:24:20 384

原创 Java 中对象List 转map实践

【代码】Java 中对象List 转map实践。

2024-07-25 15:15:43 469

原创 Mybatis-plus notExists/ Exists的使用

期间在使用notExists/ Exists 直接注入相关sql 时,需要传递相关参数,查看 notExists/ Exists 方法时是看到他可以支持传参的。Mybatis-plus 构建查询条件的时候有时会使用 LambdaQueryWrapper 直接在代码中进行查询。0,1 标识参数位置后,然后按位置数据需要传递的参数。后来发现原来是支持以下方式的使用的。

2024-07-25 13:29:36 1339

原创 通过 AOP(面向切面编程)技术来拦截所有使用 @Scheduled 注解的方法,并在这些方法执行前后进行日志记录

切面(Aspect):拦截定时任务方法。通知(Advice):在方法执行前后进行日志记录和异常处理。日志记录:记录方法的开始、结束时间和执行状态。异常处理:在方法执行失败时记录异常信息。

2024-07-17 10:09:47 487

原创 使用 AOP(面向切面编程)技术对所有控制器方法的执行进行日志记录

为了方便问题诊断,有时候会想要查看接口的传入参数以及输出参数,来判断接口是否有问题,所有需要相关的打印功能,但是在相关接口上手动输入有太麻烦了,所以借助切片来实现相关功能。

2024-07-17 09:49:23 267

原创 MyBatis的原理?

首先定义一个Mapper接口,接口中的方法定义了需要执行的SQL操作。

2024-07-15 11:06:05 1278

原创 Ant 风格的路径模式和 MVC 风格的路径模式 是什么

Ant 风格的路径模式:使用**和?等符号来匹配 URL 路径,主要用于文件路径匹配。MVC 风格的路径模式:使用{}占位符来匹配路径变量,适用于 Spring MVC 控制器的请求映射。选择使用哪种模式取决于具体的应用场景和需求。对于需要匹配复杂 URL 模式的场景,MVC 风格的路径模式更为灵活和强大。

2024-07-15 09:46:28 733

原创 MyBatis的#与$有什么区别

在 MyBatis 中,和。

2024-07-12 16:49:20 317

原创 SpringBoot的动态代理默认用的哪个???

总之,Spring Boot 默认情况下会根据类是否实现接口来选择使用 JDK 动态代理或 CGLIB 动态代理。通过配置,可以强制选择使用哪种代理机制。默认情况下,Spring 会根据上面的规则自动选择代理方式。但是,如果你希望强制使用特定的代理方式,可以通过配置来实现。例如,在 Spring 的。使用代理且没有任何特殊配置,Spring 将使用 JDK 动态代理,因为。根据默认行为,如果你对。

2024-07-12 16:47:56 582

原创 SpringBoot的启动流程?

上述流程是一个高层次的概述,实际的启动过程中包含了很多细节和复杂的内部机制,如条件装配、事件发布、上下文刷新等。Spring Boot 的设计目的是为了简化 Spring 应用的配置和启动,因此很多步骤都是自动化完成的,开发者可以专注于业务逻辑的实现。

2024-07-12 16:45:44 575

反序列化失败的原因报告

反序列化失败的原因报告

2023-07-21

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

TA关注的人

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