Spring源码
文章平均质量分 96
宜城一少
砥砺前行
展开
-
Spring MVC 一个请求的完整过程
Spring MVC 一个请求的完整过程整个过程如上图,首先,用户的浏览器发出了一个请求,这个请求经过互联网到达了我们的服务器。Servlet 容器首先接待了这个请求,并将该请求委托给 DispatcherServlet 进行处理。接着 DispatcherServlet 将该请求传给了处理器映射组件 HandlerMapping,并获取到适合该请求的拦截器和处理器。在获取...原创 2019-10-21 16:29:58 · 1667 阅读 · 2 评论 -
Spring源码解读之 统一资源加载策略
在学 Java SE 的时候,我们学习了一个标准类java.net.URL,该类在 Java SE 中的定位为统一资源定位器(Uniform Resource Locator),但是我们知道它的实现基本只限于网络形式发布的资源的查找和定位。然而,实际上资源的定义比较广泛,除了网络形式的资源,还有以二进制形式存在的、以文件形式存在的、以字节流形式存在的等等。而且它可以存在于任何场所,比如网络、文件...转载 2019-07-24 09:37:59 · 443 阅读 · 0 评论 -
Spring AOP动态代理实现源码解析
写在AOP之前一、静态代理和动态代理静态代理:在编译期生成.class字节码文件动态代理:在运行时运用反射机制动态创建1)静态代理:目标对象和代理对象需要实现相同的接口代理对象需要持有目标对象(一般是目标对象实现的接口)2)动态代理JDK动态代理:Proxy.NewProxyInstance()InvocationHandler接口CGLIB动态代理...原创 2019-09-20 11:11:10 · 620 阅读 · 0 评论 -
Spring事务源码解析(声明式事务)
切入点:spring自定义标签的解析上面的resolve方法点进去,执行TxNamespaceHandler.init()方法以上两个parser分别用来解析tx:advice和tx:annotation-driven标签。进行标签解析:调用parser.parse()方法进行解析:最外围的if判断限制了<t...原创 2019-09-29 09:07:06 · 204 阅读 · 0 评论 -
容器的初始化之 Root WebApplicationContext 容器
首先,我们来回顾一下Tomcat启动context容器的过程。调用的是StandardContext.startInternal()方法,其中有一段逻辑是初始化Servlet相关的Listener:在完成 Listener 实例化之后,tomcat 容器便启动 OK 了。此时,tomcat 需要通知应用程序定义的 ServletContextListener,方便应用程序完...原创 2019-10-11 16:18:11 · 2242 阅读 · 0 评论 -
容器的初始化之 Servlet WebApplicationContext 容器
在开始之前,我们还是回过头看一眼web.xml的配置。代码如下:即,ServletWebApplicationContext 容器的初始化,是在 DispatcherServlet 初始化的过程中执行。HttpServletBean ,负责将 ServletConfig 设置到当前 Servlet 对象中。类上的简单注释如下:FrameworkServlet ,负责初...原创 2019-10-11 16:27:11 · 377 阅读 · 0 评论 -
Spring 是如何支持 Servlet 3.0 的?
写在前面:ServletContainerInitializer 也是 Servlet 3.0 新增的一个接口,容器在启动时使用 JAR 服务 API(JAR Service API) 来发现 ServletContainerInitializer 的实现类,并且容器将WEB-INF/lib目录下 JAR 包中的类都交给该类的#onStartup(...)方法处理,我们通常需要在该实现...原创 2019-10-11 16:30:04 · 370 阅读 · 0 评论 -
SpringBoot 中 Servlet 加载流程的源码分析
1. Initializer 被替换为 TomcatStarter当使用内嵌的 Tomcat 时,你会发现 Spring Boot 完全走了另一套初始化流程,完全没有使用前面提到的 SpringServletContainerInitializer ,实际上一开始我在各种 ServletContainerInitializer 的实现类中打了断点,最终定位到,根本没有运行到 SpringSer...原创 2019-10-11 16:31:40 · 424 阅读 · 0 评论