spring实现的基本思路
Posted image_erfsfj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring实现的基本思路相关的知识,希望对你有一定的参考价值。
spring实现的基本思路
配置阶段
- 配置web.xml
- DispatchServlet
- 设定init-param
- 设置初始化参数的文件的加载路径contextconfigLoacation = classpath:application.xml
- 设定url-pattern
- /*
- 配置Annotation
- @Controller @Service @Autowried @RequestMapping...
初始化阶段
- 调用init()方法
- 加载配置文件
- IOC容器初始化
- Map<String,Object>
- 扫描相关的类
- scan-package="com.demo"
- 创建实例并保存到容器——IOC
- 通过反射机制将类实例化放入容器中
- 进行DI操作——DI
- 扫描IOC容器中的实例,给没有赋值的属性自动赋值
- 初始化HandlerMapping——MVC
- 将一个Url和一个方法进行一对一的关联映射Map<String,Method>
运行阶段
- 调用doGet()/doPost()
- Web容器调用doGet/doPost方法,获得request/response对象
- 匹配HandlerMapping
- 从request对象中获得用户输入的url,找到对应的Method
- 反射调用method.invoker()
- 利用反射调用方法并返回结果
- response.getWrite().write()
- 将返回结果输入到浏览器
代码实现逻辑
- 1、加载配置文件
- 2、扫描相关的类
- 3、初始化IOC容器,初始化扫描到的类,并且加入IOC容器中
- 4、扫描加有注解的类,完成依赖注入
- 5、初始化HandlerMapping,将url对应的Method注入容器
- 6、执行service业务方法
相关技巧
- 将类名的首字母转小写方法
- 先将类名转char数组
- 再将第一个元素加32,也就是第一个字母,大小写字母的Ascii码相差32,大写字母Ascii码小于小写字母
以上是关于spring实现的基本思路的主要内容,如果未能解决你的问题,请参考以下文章
注解与反射 ---Spring与Mybatis等框架的实现原理