Spring的源码学习关键学习IOC, DI ,MVC, AOP .
Spring的源码非常庞大,要找到每一个模块的放口,再一级一级看源码,函数递进不用看太深不然很容易就要放弃了。
我也是初次学习,把自己的心得写一下。
1. 零散笔记记录 2019.4.10 (Spring 中的IOC,控制反转的学习)
入口:SpringMVC 和入口是 DidspatcherServlet 这个类。我们找到这个类的init() 方法。
如下图所示:DidspatcherServlet 和爷爷类 HttpServletBean 中找到了init() 方法
下面我提一下,init() 函数 如何初始化九大组件的:
DispatcherServlet 的类图如下:
IOC 容器的各模块的顶层实现(... 待整理) todo
2.零散笔记记录 2019.4.13 (Spring 中的DI, 依赖注入的学习)
依赖注入的入口是从 getBean() 方法开始的。xxxx. (待整理)
- 类名:View
- 方法名: render() 函数作用:
public void render(Map<String, ?> model,HttpServletRequest request, HttpServletResponse response) throws Exception{ ...}
这个函数的作用是:
一行一行的解析 xx.html中的content, 然后把view (即 xx.html) 中的${varName} 替换成model中的实际值, 再生成新的xx.html, 再把view返回给前端前。
其他:
@Slf4j 注解: 加了这个注解后, 可以在方法中直接用log 对象操作写日志, 不用自己再去new 一个log 对象 。
e.g.
String json = "{name:\"" + name + "\",time:\"" + time + "\"}";
log.info("这是在业务方法中打印的: " + json);