Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

基于AOP的日志模块本文旨在分析参与项目中的日志,如何基于AOP面向切面原理实现controller请求及响应信息打印。本项目将日志记录的逻辑封装成一个切面,然后通过切入点和通知来指定在哪些方法需要执行日志记录的操作。 AOP中注解的含义@Aspect:切面。表示一个横切进业务的一个对象。它里面包含切入点(Pointcut)和Advice(通知)。@Pointcut:切入点。表示需要切入的位...

滑动窗口算法今天刷力扣题目,刷到了一个滑动窗口算法问题,这类算法问题之前没有遇到过,特此记录下来 解题思路1.首先确定窗口的定义(比如子串的每个字符存在个数/子数组的和)2.开始创建变量2.1.window(HashMap/int)用来定义窗口。2.2.left right指针[left, right)区间就是我们的窗口。2.3结果res,需根据题意3.window更新窗...

问题描述在最近的项目中,因为需要多次对某个中台接口进行反复调用,以获取分页数据的全量数据以便在后台进行去重,我写了一个多线程功能代码如下: 123456789101112pageList.forEach(obj -> { pool.execute(() -> { request.setCurrent(obj); log.inf...

等待异步线程池跑完再执行后续代码的方法等待异步线程池跑完再执行指定方法的三种方式(condition、CountDownLatch、CyclicBarrier),最近本人使用的CountDownLatch CountDownLatch应用场景 某个线程需要在其他n个线程执行完毕后再向下执行 多个线程并行执行同一个任务,提高响应速度 1234567891011121314151617181...

@Scheduled 和SchedulingConfigurer接口的区别@Schedule注解的一个缺点就是其定时时间不能动态更改,它适用于具有固定任务周期的任务,若要修改任务执行周期,只能走“停服务→修改任务执行周期→重启服务”这条路。 而基于 SchedulingConfigurer 接口方式可以做。 SchedulingConfigurer 接口可以实现在@Configuration...
Java

参数说明:1.corePoolSize(线程池基本大小):当向线程池提交一个任务时,若线程池已创建的线程数小于corePoolSize,即便此时存在空闲线程,也会通过创建一个新线程来执行该任务,直到已创建的线程数大于或等于corePoolSize时,才会根据是否存在空闲线程,来决定是否需要创建新的线程。除了利用提交新任务来创建和启动线程(按需构造),也可以通过 prestartCoreThr...

什么是事务  事务是指是程序中一系列严密的逻辑操作,而且所有操作必须全部成功完成,否则在每个操作中所作的所有更改都会被撤消。可以通俗理解为:就是把多件事情当做一件事情来处理,好比大家同在一条船上,要活一起活,要完一起完 。 事物的四个特性(ACID)● 原子性(Atomicity):操作这些指令时,要么全部执行成功,要么全部不执行。只要其中一个指令执行失败,所有的指令都执行失败,数据进行回滚...
Java

为什么会有跨域的问题?为了保证用户信息的安全,所有的浏览器都遵循同源策略,那什么情况下算同源呢?同源策略又是什么呢? 记住:协议、域名、端口号完全相同时,才是同源 可以参考 Web安全 - 浏览器的同源策略 在同源策略下,会有以下限制: 无法获取非同源的 Cookie、LocalStorage、SessionStorage 等无法获取非同源的 dom无法向非同源的服务器发送 ajax 请求但...

一、MQ相关的概念1.1、MQ的基本概念什么是MQMQ(message queue),从字面意思上看就个 FIFO 先入先出的队列,只不过队列中存放的内容是 message 而已,它是一种具有接收数据、存储数据、发送数据等功能的技术服务在互联网架构中,MQ 是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务,用于上下游传递消息。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依...
Java

一、实现原理1.1基本原理JDK 原生的锁可以让不同线程之间以互斥的方式来访问共享资源,但如果想要在不同进程之间以互斥的方式来访问共享资源,JDK 原生的锁就无能为力了。此时可以使用 Redis 来实现分布式锁。 Redis 实现分布式锁的核心命令如下: 1SETNX key value SETNX 命令的作用是:如果指定的 key 不存在,则创建并为其设置值,然后返回状态码 1;如果指定的...
Java