- 博客(24)
- 收藏
- 关注
原创 Spring - 不同的HandlerMapping解析不同请求
SimpleUrlHandlerMapping 用来处理静态文件Url访问,RequestMappingHandlerMapping解析Controller类定义的接口
2023-08-21 16:33:50
111
原创 Spring的Cache组件 - @Transactional + @CacheEvict 在同一方法上声明,删除缓存异常是否导致事务回滚?
删除缓存异常是否会导致事务被回滚,取决于事务、缓存拦截器的执行先后!而这与 @EnableTransactionManagement与@EnableCaching的声明顺序 正相关 !与ProxyCachingConfiguration、ProxyTransactionManagementConfiguration的装载执行先后 逆相关 !
2023-07-21 21:25:45
538
1
原创 dubbo:虽然Protocol的@SPI指定了‘dubbo’却执行先RegistryProtocol后DubboProtocol
1、Consumer默认对单一Provider维护共享的单一长连接通信客户端;通过指定@Reference的connections来one connection for one service2、通常情况下的执行先后顺序:InjvmProtocol -> RegistryProtocol -> DubboProtocol3、由@SPI指定使用接口的实现类,接口配置文件里也会申明它的wrapper,在创建实例时裹在外层。ProtocolFilterWrapper创建Invoker的FilterChain.
2022-06-08 18:54:50
918
原创 JDK原生java.net.HttpURLConnection & Apache提供的通信池化客户端org.apache.http.impl.client.CloseableHttpClient
一文搞懂 JDK原生HttpURLConnection 和 Apache提供的通信池化客户端.CloseableHttpClient!
2022-06-02 16:22:03
4245
原创 Cpu高速缓存 & 缓存行填充
Cpu密集型 &IO密集型Cpu密集型也叫计算密集型:在系统运行期间,性能瓶颈主要在Cpu,此时Cpu高负载或高使用率。通常在加解密等大量复杂运算场景。 IO密集型:此时性能瓶颈受限制于硬盘/内存的IO读写,没有充分利用Cpu能力。此时线程的空闲时间多,可以适当提高线程数。IO密集型核心线程数 = Cpu核数 / (1- 阻塞系数)Cpu密集型核心线程数 = Cpu核数阻塞系数 = Cpu等待时间 : Cpu总时间 , 通常会设定: "等待时间 : 运行时间 = 1 ...
2022-05-25 11:20:47
1164
原创 MultipartFile文件上传 (2) - DispatcherServlet#doDispatch 如何处理Multipart请求
SpringMVC 处理Multipart请求
2022-04-11 15:43:05
2149
原创 JDK Concurrent包组件概解(4)- ScheduledThreadPoolExecutor & Timer
两者都是用来延时或定时执行任务的,在实现上它两的设计思路是相似的,细节上略有差异。相同一、都有一个可变数组队列来保存任务对象。当队列元素发生入队、出队时,都会按“nextExecutionTime” 进行堆排序来保证队首元素的延时是最少的。队列内元素不保证全局严格有序,但对于树结构上的一个三元组<left,parent,right> 里而言, parent一定是最小的。<结构是( n, 2n, 2n+1)>插入到队尾时 fixUp: 循环向上与三元组的parent比对
2021-09-02 16:01:30
216
原创 JDK Concurrent包组件概解(3)- ThreadPoolExecutor
目录ThreadPoolExecutorFutureTaskThreadPoolExecutor线程池创建时,需要指定的参数有:corePoolSize 核心线程数 maximumPoolSize 最大线程数 keepAliveTime + unit 超过核心线程数的临时线程持续时间 BlockingQueue 阻塞队列,保证并发读写安全 ThreadFactory 创建Worker工作线程的工厂类 Rejecte...
2021-08-19 16:52:55
141
原创 JDK Concurrent包组件概解(2)- 无锁并发的核心AbstractQueuedSynchronizer
AbstractQueuedSynchronizer通过内部类Node来维护等待权限线程的双向链。 static final class Node { /** Marker to indicate a node is waiting in shared mode */ static final Node SHARED = new Node(); /** Marker to indicate a node is waiting in exclu
2021-08-17 22:06:01
430
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人