pe框架简介3--MainServlet

在文章pe框架简介2--web.xml中,web.xml中的标签标明了创建Servlet实例的java类:MainServlet。这样在web应用启动时,会创建Servlet实例,实例化并调用MainServlet.init()方法。

init()方法的重点如下:

1、首先调用a()方法,加载pe-configs.xml配置文件。a()方法详解如下:


2、之后调用 initWebApplicationContext() 方法,可以看出,最终调用的是Spring本身的refresh()方法,该方法的解详见:最详细的Spring核心IOC的源码分析(每次看都有不同的感悟)。通过该方法创建 Bean 容器,加载并注册Bean。

通过启动日志(如下),我们也可以看出项目中使用XmlWebApplicationContext作为BeanFactory。而对于Spring,默认采用DefaultListenableBeanFactory(类图见下)来实例化容器。

Servlet with name 'Dispatcher1' will try to create custom WebApplicationContext context of class 'org.springframework.web.context.support.XmlWebApplicationContext' using parent context [null]


XmlWebApplicationContext  类图


DefaultListenableBeanFactory  类图

3、bean实例化完之后调用 如下方法,完成后续操作。调用方法打印日志如下图所示。

this.goto =this.if();//配置文件上传  multipartResolver

this.do =this.for();//配置国际地区,语言  localeResolver

this.char =this.do();//配置视图解析  mainViewResolver

this.int =this.a();//加载主控制器mainController


4、至此,项目已经启动

5、项目启动后,进行客户端访问,.do文件会调用MainServlet中的doGet() 或者 doPost()方法,这两个方法最终都会调用this.a()方法,而this.a()通过:var5 =this.int.process(var1, var2, var7);  (其中int指主控制器mainController,)调用mainController.process();





你可能感兴趣的:(pe框架简介3--MainServlet)