bean手动实例化依赖注入
Spring bean 注入失败 现象 spring 的 component 在使用的时候,依赖注入全部都是 null,分析现象是没有进行注入 代码 拿到后的实例中,bean 中的依赖是没有注入进去的,导致使用的时候都是 nul 的 排查 spring scope spring 的 bean 的管理模式,默认是单例模式…
标签
共 37 篇 · 全部标签
Spring bean 注入失败 现象 spring 的 component 在使用的时候,依赖注入全部都是 null,分析现象是没有进行注入 代码 拿到后的实例中,bean 中的依赖是没有注入进去的,导致使用的时候都是 nul 的 排查 spring scope spring 的 bean 的管理模式,默认是单例模式…
parseInt(String s) java的parseInt函数可以将传入的字符串转换成数字,如果传入的字符串不满足要求,例如转换后的值过大,符号位过多,或者包含字母,则会进行异常的抛出 默认的parseInt是会调用一个可以传入进制数的函数
用来做多线程时候的同步,当所有线程都准备好了之后,才进行放行。例如现在有10个线程,在调用了cyclicBarrier的await()方法的线程数量不为10的时候,线程都会处于阻塞状态,只有达到10了才会进行释放,然后阻塞线程被唤醒,程序继续执行
使用方法 CountDownlatch在初始化的时候,需要赋予一个初始值,用来初始化计数器,然后在子线程里面调用countDown方法来进行减一,当计数器的值为0的时候,调用countdownlatch.await()的线程才能够继续往下走,在值为0之前,调用await的线程会一直被阻塞。
AQS为很多的锁实现了底层的功能,就拿ReentrantLock来说,里面的lock就使用了AQS提供的方法 本文是参考的JDK 14的源码,JDK14和JDK8中的源码不太相同,例如去除了几种NODE状态,增加了一些节点的内部静态类 结构图 AQS的结构图 Node的结构图
parseDynamicConfig 读取配置文件,返回QuorumVerifier,包含所有节点的信息 对节点的配置,需要是用server.开头,或者是version开头 拿到QV之后,根据参与者的数量,做一些校验 如果校验通过,在返回的QV里面,包含所有的节点的信息,方便后续进行选举时候的连接 里面有两个核心的东西…
该类主要的功能是记录节点ack的信息,并且判断是否超过了半数等信息 这个东西是在FastleaderElection中通过getVoteTracker获取到的 关系图 变量 只有一个变量,节点验证器的ack集合,所以重点是这个qvAcksetPairs QuorumVerifierAcksetPair 用来存储验证器,…
原本的代码很长,只记录了个别在看代码时候有用的一些 里面会启动两个线程,一个发送线程QuorumConnectionReqThread还有一个接受线程QuorumConnectionReceiverThread。 在zk启动的时候,会在QuorumConfig里面读到所有的节点信息,然后生成一个Quorum验证器,这时…
负责选举的相关 选举流程 1. 先判断节点当前的状态,以及是否需要停止 2. 从接收队列里面取出来一个投票,然后校验是否合法 3. 如果选举周期不一致,比较目标投票以及自己投票的信息, 然后选择更新自身的投票信息然后通知别的节点 4. 如果选举周期一致,将选票信息存入到recvset中,以接收到的节点的id为key,根…
对象属性定义