Spring实现的基本思路
1.配置阶段
配置web.xml DispatcherServlet
设定init-param contextConfigLocaltion = classpath:application.xml
设定url-pattern /*
配置Annotation @Controller @Service @Autowired @RequstMapping…
2.初始化阶段
调用init()方法 加载配置文件
IoC容器初始化 Map<String,Object>
扫描相关的类 scan-package = “com.***”
创建实例化并保存至容器 通过反射机制将类实例化放入IoC容器中
进行DI操作 扫描IoC容器中的实例,给没有赋值的属性自动赋值
初始化HandlerMapping 将一个URL和一个Method进行一对一的关联映射Map<String,Method>
3.运行阶段
调用doPost()/doGet() Web容器调用doPost/doGet方法,获得request/response对象
匹配HandlerMapping 从request对象中获得用户输入的url,找到其对应的Method
反射调用method.invoke() 利用反射调用方法并返回结果
response.getWrite().write() 将返回结果输出到浏览器
源码实现大概步骤
1.初始化配置文件
2.扫描配置文件中配置的包
3.实例化IoC容器,将扫描到的类实例化并放入Spring容器中
4.实现DI依赖注入
5.实现MVC功能,
6.实现AOP