springV1

image

image

 

image

image

 

image

 

image

 

image

 

image

从web.xml 开始 web容器 -->  ioc容器(注册式-单例)

image

 

image

定位 加载 注入

1.ServletConfig---对应的web.xml--   可以拿到里面配置的spring主配置位置文件 application.xml,--值

2.扫描 上面的之,即spring配置的类--包路径-文件路径--  解出类名保存

3.根据上面的类名,反射,容器初始化,放入ioc容器里 。

过滤实例指定注解的类。Class.forName(className);  默认类名首字母小写;反射得到的字节码实例 可以拿到注解的value值;

注入的是接口。根据类型赋值,一个接口多个实现类。key一样

字节码实例可以拿到该实例的所有接口信息。属性信息。

image

 

4. 初始化web容器的--handMapping 容器--- @controller 上有 url,谁有requestMapping,找到它。类上的路径 拼上 方法上的路径。保存url与方法的对应关系。

spring V1 从MVC的  DispatchServlet 的inint的方法开始,那么

 DispatchServlet 的inint 是谁调用的??

(新手必记)

  1. 直接调用者:Servlet 容器(Tomcat/Jetty)调用 GenericServletinit(ServletConfig) 方法,这是 Servlet 规范的强制要求;
  2. 间接执行者:Spring 通过继承链将初始化逻辑传递到 DispatcherServletinitStrategies(),完成 MVC 核心组件初始化;
  3. 核心区别:DispatcherServlet 没有重写 Servlet 规范的 init(),而是通过 Spring 封装的 onRefresh() 完成自身初始化,本质是 “容器触发规范方法,Spring 接管扩展逻辑”。
简单记:Tomcat 是 “启动按钮”,按了 Servlet 规范的 init() 按钮,Spring 顺着继承链把初始化逻辑传递到 DispatcherServlet,最终完成 MVC 核心组件的初始化。

补充:SpringBoot 中的特殊情况

在 SpringBoot 中,没有 web.xmlDispatcherServletDispatcherServletAutoConfiguration 自动注册,
但其 init() 调用逻辑完全一致 —— 最终还是由嵌入式 Tomcat 容器触发 init(ServletConfig) 方法。

 

 

image

 

 一个字段属性前面可以加多个注解 

 

image

 

 


sprin的Bean 是线程安全的吗? 

image

一次请求,一次会话,单例,多例

 

image

 

posted on 2026-02-08 21:07  daofree  阅读(1)  评论(0)    收藏  举报