spring实现的基本思路
配置阶段
- 配置web.xml
- 设定init-param
- 设置初始化参数的文件的加载路径contextconfigLoacation = classpath:application.xml
- 设定url-pattern
- 配置Annotation
- @Controller @Service @Autowried @RequestMapping...
初始化阶段
- 调用init()方法
- IOC容器初始化
- 扫描相关的类
- 创建实例并保存到容器——IOC
- 进行DI操作——DI
- 初始化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实现的基本思路
原文:https://www.cnblogs.com/erfsfj-dbc/p/11909356.html