Spring 面试题
Spring MVC基本原理
总结
Spring 面试题
- 什么是Spring框架,主要模块
- 好处
- IOC,DI
- BeanFactory和ApplicationContext有什么区别
- Spring Bean的生命周期
- Spring框架中的单例bean是线程安全的吗
Spring MVC基本原理
配置阶段
web.xml
DispatcherServlet:
Springweb开发的入口
application.xml
配置spring启动所需要的加载的bean
url-pattern
拦截的地址
初始化阶段
servlet的init方法
由web容器自动调用servlet的init方法,在init方法中,执行初始化操作
加载配置文件
加载application.xml,扫包,将className收集起来
初始化IOC容器
就是一个map<String,Object>
- IOC容器规则
- key默认都是类名首字母小写
- 如果用户自定义名字,那么要优先设为该名字
- 如果是接口,使用接口类型作为key,vlaue为实现类
依赖注入
@Autowried
遍历IOC容器中class的属性,是否有注解,将其与容器中的关联
初始化handlermapping
- map<String,handler>,存储requestmapping配置的url等
- list
中存储映射关系,包括正则url,参数,
将ioc中被controller注解的class中的url作为baseUrl,其中的方法为url后缀
远行阶段
servlet.service(Request,Response)
线程阻塞,用户请求,封装参数,反射自动调用方法
request.getURL()
获得用户请求的URL
匹配URL和对应的Method
调用method
封装参数,反射动态调用method