spring 源码 如何看它的门道,求大神指点 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qingfengxm
V2EX    Java

spring 源码 如何看它的门道,求大神指点

  •  1
     
  •   qingfengxm 2018-06-13 15:08:00 +08:00 3857 次点击
    这是一个创建于 2690 天前的主题,其中的信息可能已经有所发展或是发生改变。

    spring 源码看了也有段时间了,一个类接一个类的看,看不出门道来,请问大神们都是怎么研究 spring 源码的啊?直接跑源码里的测试用例???实在搞不懂啊,求大神指点

    5 条回复    2018-06-20 23:10:25 +08:00
    donnior
        1
    donnior  
       2018-06-13 15:53:21 +08:00   3
    不是大神,但是多年前也算是看过 spring 源码,个人建议

    1. 现在版本的 spring 太庞大,各种第三方接入太多,可以从老版本 spring 开始看
    2. 核心看 IOC 和 AOP,毕竟是两大基石;看得差不多了可以继续看事务管理的源码,个人认为较经典的阐述了 AOP
    3. 一点小技巧,spring 的源码基本上都是遵循一个模式,顶层是各种 interface ( spring 的接口分得很细很讲究,值得好好学习),然后是 abstract class,最后是各种 concrete class; 视你的目的和能力看,最好对着一些设计原则学习
    4. 如果你是想看流程之类的,可以以简单的 spring mvc 项目为蓝本,打开 log 级别到 debug,可以顺着往下看,一步一步看
    5. 如果你还想看 spring boot,在上述基础上看明白 auto config 以及如何实现个人觉得就够了
    xiaoshenke
        2
    xiaoshenke  
       2018-06-13 17:48:48 +08:00
    为什么要看源码?知道 ioc,aop 就够了,spring 的源码代码质量又不高(不过呢,java 的东西本来就是又臭又长),本质就一个 ioc,aop,没东西了。
    xiaoshenke
        3
    xiaoshenke  
       2018-06-13 17:49:23 +08:00
    年轻人,会看源码远远比不了会写代码,多写少看。
    Liuuu
        4
    Liuuu  
       2018-06-13 19:48:05 +08:00
    @xiaoshenke #2 膜拜大神
    981764793
        5
    981764793  
       2018-06-20 23:10:25 +08:00 via Android
    这两天也想学习源码部分来着,但是发现 spring 太庞大了,看着脑袋大,决定先学习 IOC AOP 部分,这是这两天的成果,https://gitee.com/981764793/LSFramework
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2549 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 13:17 PVG 21:17 LAX 06:17 JFK 09:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86