-
SpringBoot通过@Scheduled实现定时任务
一、开启定时任务方法Scheduled定时任务是Spring boot自身提供的功能,所以不需要引入Maven依赖包 在项目入口main方法上加注解@EnableScheduling //开启定时任务 二、不同定时方式的解析1.fixedDelay和fixedRate,单位是毫秒,它们的区别就是:fixedRate就是每隔多长时间执行一次。(开始------->X时...10个月前 阅读274
-
面试场景题手写一个发布订阅,你会吗?
前言 在面试场景题中,发布订阅占有举足轻重地地位.发布订阅模式是一种消息通信模式,这一模式,消息的发送者不会将消息直接发送给特定的订阅者.发布者发布信息,如果有订阅者订阅了该消息就会得到这个信息.那么我们手写又是如何实现呢?正文组件通信中的发布订阅 我们先从vue中的组件通信中的子传父通信的...10个月前 阅读270
-
Vue一种超简单在指定滚动位置显示隐藏元素(悬浮按钮)方法
本前端仔在开发完某个项目的时候,正准备上线,突然,老板大喊:前端仔,你快过来看,你看xxx网站,它滑下去的时候按钮就显示出来,这样不管读到哪个位置,都可以很方便地点击到按钮,给你五分钟,给我做一个出来!我心里一阵苦闷:啊,可是不是说好等下就要上线吗?咋又提需求了~ 哎其实,这个需求很简单,常规操作css粘...10个月前 阅读299
-
彻底搞懂防抖的实现原理(this,闭包等细节)
前言在前端开发中,我们经常需要处理一些高频触发的事件,如窗口的scroll事件、按钮的click事件以及输入框的input事件等。如果不加处理,这些事件会大量消耗系统资源,并且可能影响用户的体验。这时候,就需要用到防抖(debounce)技术来减少事件处理函数的调用频率。防抖的概念防抖是一种常用的优化手段,它能够保证在一段...10个月前 阅读281
-
在springboot中缩短一个url链接
缩短 URL 是现代应用程序中常见的需求,通常用于减少长 URL 的长度,使其更易于分享。URL 缩短服务的核心思路是将长 URL 映射到一个唯一的短代码。较为复杂的场景可能涉及多种功能,例如:缩短的 URL 自动过期(即在一定时间后失效)。统计 URL 的访问量。检查并避免短 URL 重复。添加安全机制,如防止恶意链接...10个月前 阅读283
-
使用 Wake Lock API:保持设备唤醒的最佳实践
在现代 Web 应用中,尤其是涉及视频播放、实时通信、地图导航等长时间运行的任务时,用户常常希望设备不要因为空闲而自动进入睡眠模式或屏幕变暗。为了解决这一问题,Web API 提供了一个名为 Wake Lock 的接口,允许开发者请求设备保持唤醒状态。本文将详细介绍如何使用 Wake Lock API 来控制设备的唤醒状态,提...10个月前 阅读285
-
MySQL 事务隔离级别:理解并发控制的关键
在 MySQL 数据库中,事务隔离级别是一个重要的概念,它决定了事务之间的隔离程度,以及如何处理并发操作。不同的事务隔离级别会对数据库的并发性能和数据一致性产生不同的影响。今天,我们就来深入探讨一下 MySQL 中的事务隔离级别以及它们如何影响并发。一、事务的概念在数据库中,事务是一组 SQL 语句的集合,这些语...10个月前 阅读276
-
Java 线程状态详解
在 Java 中,Thread 类定义了 6 种线程状态,这些状态描述了一个线程的生命周期中的不同阶段。理解这些状态对于编写多线程程序、调试和优化性能非常重要。本文将详细介绍这六种线程状态,并通过示例代码演示每种状态的行为。此外,还将讨论一些常见的线程方法(如 Thread.sleep() 和 Object.wait())是如何影...10个月前 阅读287
-
使用springboot简单实现无感知的刷新 Token功能
实现无感知的刷新 Token 是一种提升用户体验的常用技术,可以在用户使用应用时自动更新 Token,无需用户手动干预。这种技术在需要长时间保持用户登录状态的应用中非常有用,比如在一些需要频繁访问服务器资源的WEB和移动应用。以下是使用Spring Boot实现无感知刷新Token的一个场景案例和相应的示例代码。场景案例假设我...10个月前 阅读290
-
@Transactional 注解的错误使用场景
不必要的使用场景1. 无需事务的方法:问题描述:在只包含查询或只读操作的方法上使用@Transactional是不必要的,因为这些操作不需要事务管理。示例代码:@Transactional public String testQuery() { standardBak2Service.getById(1L); return "testB"; } 详细说明:...10个月前 阅读275