随笔分类 - 核心源码解读
摘要:类继承关系,成员和构造函数(非过期部分) //实现了比较器和charSequence。CharSequence提供了一系列可读char序列的方法。JDK9之后添加Constable, ConstantDesc两个新的接口实现 public final class String implements
阅读全文
摘要:最终入口 // 入参需要一个mbd protected Object createBean(String beanName, RootBeanDefinition mbd, @Nullable Object[] args) throws BeanCreationException { if (log
阅读全文
摘要:beanFactory接口提供的定义 Object getBean(String name) throws BeansException; <T> T getBean(String name, Class<T> requiredType) throws BeansException; Object
阅读全文
摘要:成员 // 自身定义 @Nullable private static Class<?> javaxInjectProviderClass; static { try { javaxInjectProviderClass = ClassUtils.forName("javax.inject.Prov
阅读全文
摘要:AbstractApplicationContext:refresh() //创建过程总计12个主要步骤: // 1 为准备环境 //2 3 4 5 6 为准备 BeanFactory //7 8 9 10 12 为准备 ApplicationContext //11 为初始化 BeanFactor
阅读全文
摘要:基于spingboot 2.1.1 run方法 public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) { return run(new Class<?>[] { primary
阅读全文
摘要:入口注解SpringBootApplication @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited //继承自Configuration注解 @SpringBootConfigu
阅读全文
摘要:start // 同步方法 public synchronized void start() { // 检查线程状态 if (threadStatus != 0) throw new IllegalThreadStateException(); //添加到指定线程组,thread默认使用调用线程的线
阅读全文
摘要:继承/实现 //和HashMap一样 AbstractMap子类,但接口实现自Map的子接口ConcurrentMap ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializabl
阅读全文
摘要:构造函数 //默认非公平锁 public ReentrantLock() { sync = new NonfairSync(); } //根据布尔入参确定锁实现 public ReentrantLock(boolean fair) { sync = fair ? new FairSync() : n
阅读全文
摘要:成员变量,常量,枚举,通用实现方法 节点状态 static final int WAITING = 1; // must be 1 static final int CANCELLED = 0x80000000; // must be negative static final int COND =
阅读全文
摘要:Lock接口提供的抽象方法 public interface Lock { //锁定方法,未获取到锁的阻塞等待,文档要求实现需考虑错误检测机制 void lock(); //锁定方法,允许获取过程的中断 void lockInterruptibly() throws InterruptedExcep
阅读全文