Skip to content

lianyt1994/mySpring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

mySpring

简易实现spring框架的IOC功能
项目初始化流程:
在web.xml中

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>spring.servlet.MyDispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

MyDispatchServlet在实例化的时候会初始化InitBean,InitBean在构造函数中初始化加载application.xml里面的属性,实例化其中的bean属性,根据component-scan属性 可以获得需要扫描的包名,然后扫描对应的包,将其中带有MyComponentMyControllerMyRepositoryMyService注解的类实例化,注入beanContainerMap中,key为 类名和接口,value为对应的对象,然后扫描这些对象,找到带有MyAutowired注解的Field,注入对应的对象。扫描到的Controller,将其添加到handlerMapping中。
项目处理请求流程:
请求从web.xml进入,打在MyDispatchServlet,通过doGetdoPost进行跳转,跳转到doDispatch方法上,从request中获取参数,注入方法的参数中,执行方法 如果返回MyModelAndView就先从中取出Attribute,通过request.setAttribute(key,value)加到request中,然后从MyModelAndView中取得view,通过request.getRequestDispatcher(resultAddress).forward(request,response) 进行页面跳转,流程结束。

About

简易实现spring框架

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages