1. 2.79 1. Instantiate the Channelhistorical

    Instantiate NioServerSocketChannel through reflection, configure it as non-blocking, and create channelId, Unsafe, and pipeline.

  2. Netty Bind Source: Actually Binding the Listening Porthistorical

    1. Code to analyze. 1.1. How NioEventLoop executes the Runnable. 1.2. What the bind task executed by NioEventLoop does, including JDK NIO bind, channelActive propagation, and registering interest in accept events.

  3. Inbound Eventshistorical

    1. Add handlers for the experiment 2. Start from the pipeline 3. Forward through AbstractChannelHandlerContext 4. Enter HeadContext 5-8. Traverse inbound handlers to TailContext

  4. ByteBufhistorical

    Data structure, API, class hierarchy, and classification

  5. 1. Inject AspectJAnnotationAutoProxyCreator into the Containerhistorical

    Enable AOP, register AspectJAnnotationAutoProxyCreator, and trace when ImportBeanDefinitionRegistrar.registerBeanDefinitions is called

  6. 2.1 How the AnnotationAwareAspectJAutoProxyCreator Bean Instance Is Createdhistorical

    Class hierarchy, call-stack analysis, BeanFactoryAware setBeanFactory, registration and initialization of AnnotationAwareAspectJAutoProxyCreator

  7. Spring AOP Source Analysis Summaryhistorical

    Created on Monday, July 22, 2019. Source analysis of Spring AOP from @EnableAspectJAutoProxy through auto-proxy creation and target-method interceptor execution.

  8. 2. Initialize Channelhistorical

    1. Code to analyze 2. Obtain the channel pipeline and add a ChannelInitializer

  9. Netty Source: NioEventLoop run Methodhistorical

    Code analysis of the NioEventLoop run loop: select, selector rebuild, selected-key optimization, processSelectedKeys, and asynchronous task execution.

  10. Outbound Eventshistorical

    1. Add handlers for the experiment 2. Start from the pipeline 3. Enter TailContext 4-7. Traverse outbound handlers back to HeadContext