环境准备: 使用spring5.1.6版本 1 xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&qu…
前言 前情回顾 上一篇讲了Ribbon的初始化过程,从LoadBalancerAutoConfiguration 到RibbonAutoConfiguration 再到RibbonClientConfiguration,我们找到了ILoadBalancer默认初始化的对象等. 本讲目录 这一讲我们会进一步往下探究Ribbon和Eureka是如何结合的. 通过上一讲ILoadBalancer 我们已经可以拿到一个服务所有的服务节点信息了,这里面是怎么把服务的名称转化为对应的具体host请求信息的呢…
前言 双向绑定v-model不仅仅是对可编辑HTML元素(select, input, textarea和附带[contenteditable=true])同时附加v-bind和v-on,而且还能利用通过petite-vue附加给元素的_value._trueValue和_falseValue属性提供存储非字符串值的能力. 深入v-model工作原理 export const model: Directive< HTMLInputElement | HTMLSelectElement | HTM…
1 概述 1.1 引言 android完成非阻塞式的异步请求的时候都是通过启动子线程的方式来解决,子线程执行完任务的之后通过handler的方式来和主线程来完成通信.无限制的创建线程,会给系统带来大量的开销.如果在高并发的任务下,启用个线程池,可以不断的复用里面不再使用和有效的管理线程的调度和数量的管理.就可以节省系统的成本,有效的提高执行效率. 1.2 线程池ThreadPoolExecutor okhttp的线程池对象存在于Dispatcher类中.实例过程如下 public synchro…
深入v-if的工作原理 <div v-scope="App"></div> <script type="module"> import { createApp } from 'https://unpkg.com/petite-vue?module' createApp({ App: { $template: ` <span v-if="status === 'offline'"> OFFLINE &…
1. @importSelector定义: /** * Interface to be implemented by types that determine which @{@link Configuration} * class(es) should be imported based on a given selection criteria, usually one or more * annotation attributes. * * <p>An {@link ImportSele…
一:springAOP底层实现是基于动态代理实现的.增强和切面,以及通知.是在动态代理生成的代理类inoke方法中调用实现 //+++++++++++++aop动态代理+++++++++++++++++++++++ /** * 通知,表示增强.在某些方法调用前,调用后,抛出异常后,对方法的增强.(是一个具体实现类,类中的方法实现了增强) */ //方法执行前通知 BeforeAdvice beforeAdvice ; MethodBeforeAdvice MethdBeforeAdvice; /…
我们通常会使用工具jstack 去跟踪线程信息,其如何实现使用attach 的方式还是ptrace 的方式,这些可以去参考本人的博客的其他文章. 但这些方式都是外部使用的方式,如何直接使用java代码得到当前进程的线程的信息,方便监控jvm的整个运行状态,就不的不提到了ManagementFactory 通过调用方法 ThreadMXBean tmbean = ManagementFactory.getThreadMXBean(); 通过得到 ThreadMXBean 可以得到非常多的threa…
关于指令(directive) 属性绑定.事件绑定和v-modal底层都是通过指令(directive)实现的,那么什么是指令呢?我们一起看看Directive的定义吧. //文件 ./src/directives/index.ts export interface Directive<T = Element> { (ctx: DirectiveContext<T>): (() => void) | void } 指令(directive)其实就是一个接受参数类型为Direc…
在书写petite-vue和Vue最舒服的莫过于通过@click绑定事件,而且在移除元素时框架会帮我们自动解除绑定.省去了过去通过jQuery的累赘.而事件绑定在petite-vue中就是一个指令(directive),和其他指令类似. 深入v-on的工作原理 walk方法在解析模板时会遍历元素的特性集合el.attributes,当属性名称name匹配v-on或@时,则将属性名称和属性值压入deferred队列的队尾,当当前元素所有属性绑定和v-modal处理后以及子元素所有属性绑定.v-mo…