- 博客(129)
- 收藏
- 关注
原创 如何配置frp
通过上述步骤,您可以使用FRP将公司内网的服务暴露给外部访问,或者通过它从家庭网络访问公司内网资源。FRP灵活易用,适合搭建内网穿透服务。
2024-10-17 11:33:30 239
原创 @/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
原创 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
原创 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
原创 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
原创 设计模式的类别
这些模式关注于如何创建对象。它们通过提供一个创建对象的机制,来隐藏对象创建的复杂性。:这些模式关注于如何将类和对象组合成更大的结构,以便它们能够更高效地工作。这些模式可以帮助解决常见的设计问题,使系统更灵活、更可维护。:这些模式关注于对象之间的交互和职责的分配。
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
原创 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
原创 Ant 风格的路径模式和 MVC 风格的路径模式 是什么
Ant 风格的路径模式:使用**和?等符号来匹配 URL 路径,主要用于文件路径匹配。MVC 风格的路径模式:使用{}占位符来匹配路径变量,适用于 Spring MVC 控制器的请求映射。选择使用哪种模式取决于具体的应用场景和需求。对于需要匹配复杂 URL 模式的场景,MVC 风格的路径模式更为灵活和强大。
2024-07-15 09:46:28 733
原创 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
TA创建的收藏夹 TA关注的收藏夹
TA关注的人