美文网首页
源码阅读经历

源码阅读经历

作者: 黄丰金 | 来源:发表于2019-01-22 22:07 被阅读0次

    源码阅读与定制化

    SpringFrameworkAcegi(SpringSecurity)TomcatSpringBootSpringCloud(部分), JettyVelocityMyBatis/GeneratorQuercus(PHP in Java)GuavaAndroid(UI部分)

    源码阅读的目的

    1. 分析与解决 BUG(Quercus)
    2. 寻找隐藏的交互方式(Spring)
    3. 弥补文档的不完善性(非著名项目)
    4. 扩展与定制(Velocity,MyBatis/Generator等)
    5. 安全性检查(Quercus)
    6. 学习(Spring, Tomcat, Android-UI)
    7. 工作需要(Dubbo3维护)

    源码阅读的方式

    1. 确定目标对象(建立自信 OR 被打击自信)
    2. 从使用开始
    3. 分析主脉络
    4. 分步调试
    5. 从抽象到具体
    6. 从易到难(Jetty -> Tomcat)

    定制化

    1. Ali-Tomcat

      对 Tomcat 的增强,比如对于ClasaLoader并行加载的补丁ClassLoader.registerAsParallelCapable,并合入Tomcat7.0.65。另外就是对于HSF(High-Speed Service Framework)的支持。

    2. Ali-JVM

    3. PHP Support in Java

    4. 更全面的代码生成器

    5. SpringBoot之兼容Velocity

    6. 权限平台的Boot化

    收获

    Tomcat -> 容器组件构架模型,生命周期管理与事件处理模型,以及 Pipeline 模型

    Quercus, Binlog -> 协议的理解与实现

    Android -> 分而治之与事件管理

    Spring全家桶 -> 几乎囊括了所有的设计模式和架构模型

    Tomcat 生命周期管理

                start()
      -----------------------------
      |                           |
      | init()                    |
     NEW -»-- INITIALIZING        |
     | |           |              |     ------------------«-----------------------
     | |           |auto          |     |                                        |
     | |          \|/    start() \|/   \|/     auto          auto         stop() |
     | |      INITIALIZED --»-- STARTING_PREP --»- STARTING --»- STARTED --»---  |
     | |         |                                                            |  |
     | |destroy()|                                                            |  |
     | --»-----«--    ------------------------«--------------------------------  ^
     |     |          |                                                          |
     |     |         \|/          auto                 auto              start() |
     |     |     STOPPING_PREP ----»---- STOPPING ------»----- STOPPED -----»-----
     |    \|/                               ^                     |  ^
     |     |               stop()           |                     |  |
     |     |       --------------------------                     |  |
     |     |       |                                              |  |
     |     |       |    destroy()                       destroy() |  |
     |     |    FAILED ----»------ DESTROYING ---«-----------------  |
     |     |                        ^     |                          |
     |     |     destroy()          |     |auto                      |
     |     --------»-----------------    \|/                         |
     |                                 DESTROYED                     |
     |                                                               |
     |                            stop()                             |
     ----»-----------------------------»------------------------------
    

    相关文章

      网友评论

          本文标题:源码阅读经历

          本文链接:https://www.haomeiwen.com/subject/hrfdjqtx.html