欢迎来到天天文库
浏览记录
ID:41763578
大小:68.29 KB
页数:11页
时间:2019-09-01
《SpringMVC北京赛车定制开发原理探秘-容器的创建过程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、业务容器加载一般北京赛车定制开发【大神源码论坛】dsluntan.com【布丁源码论坛】budingbbs.com企娥3393756370情况下,我们会在一个Web应用中配置两个容器。一个容器用于加载Web层的类,比如我们的接口Controller、HandlerMapping>ViewResolver等。在木文中,我们把这个容器叫做web容器。另一个容器用于加载业务逻辑相关的类,比如service,dao层的一些类。在木文中,我们把这个容器叫做业务容器。在容器初始化的过程中,业务容器会先于web容器进行初始化。web容器初始化时,会将业务容器作
2、为父容器。这样做的原因是,web容器中的一些bean会依赖于业务容器中的bean。比如我们的controiler层接口通常会依赖service层的业务逻辑类。下面举个例子进行说明:application・d8O.xmlg.w«b.dao>7>.Vccontextcompofient-scanbase-packagcxyz.coolbtog.wetxservicapplication.xml3、ansxmins=*.^*>•application・web.xmlWeb容器加载他©2018coolblog.xyz如上,我们将dao层的类配置在application-dao.xml文件屮,将service层的类配置在application-service.xml文件中。然后我们将这两个配置文件通过标签导入到application.xml文件中。此时,我们可以让业务容器去加载ap4、plication.xml配置文件即可。另一方而,我们聶Web相关的配置放在application-web.xml文件中,并将该文件交给Web容器去加载。这里我们把配置文件进行分层,结构上看起来清晰了很多,也便于维护。这个其实和代码分层是一个道理,如果我们把所有的代码都放在同个包下,那看起来会多难受啊。同理,我们用业务容器和Web容器去加载不同的类也是一种分层的体现吧。当然,如果应用比较简单,仅用Web容器去加载所冇的类也不是不可以。2.1业务容器的创建过程前面说了一些背呆知识作为铺垫,那下血我们开始分析容器的创建过程吧。按照创建顺序,我们先来分5、析业务容器的创建过程。业务容器的创建入口是ContextLoaderListener的contextlnitialized方法。顾名思义,ContextLoaderListener是用来监听ServletContext加载事件的。当ServletCon怕xt被加载后,监听器的contextlnitialized方法就会被Servlet容器调用。ContextLoaderListenerSpring框架提供的,它的配置方法如F:<1istener-class>org.springframework.web.co6、ntext.ContextLoaderListener〈/listener-class>contextConfigLocationclasspath:application.xml如上,ContextLoaderListener“J通过ServletContext获取到contextConfigLocation配置。这7、样,业务容器就可以加载application.xml配置文件了。那下而我们来分析-下ContextLoaderListener的源码吧。publicclassContextLoaderListenerextendsContextLoaderimplementsServletContextListener{//省略部分代码©Overridepublicvoidcontextlnitialized(ServletContextEventevent){//初始化WebApplicationContextinitWebApplicationContext8、(event.getServletContext());}}publicWebApplicationContextinitWebAppl
3、ansxmins=*.^*>•application・web.xmlWeb容器加载他©2018coolblog.xyz如上,我们将dao层的类配置在application-dao.xml文件屮,将service层的类配置在application-service.xml文件中。然后我们将这两个配置文件通过标签导入到application.xml文件中。此时,我们可以让业务容器去加载ap
4、plication.xml配置文件即可。另一方而,我们聶Web相关的配置放在application-web.xml文件中,并将该文件交给Web容器去加载。这里我们把配置文件进行分层,结构上看起来清晰了很多,也便于维护。这个其实和代码分层是一个道理,如果我们把所有的代码都放在同个包下,那看起来会多难受啊。同理,我们用业务容器和Web容器去加载不同的类也是一种分层的体现吧。当然,如果应用比较简单,仅用Web容器去加载所冇的类也不是不可以。2.1业务容器的创建过程前面说了一些背呆知识作为铺垫,那下血我们开始分析容器的创建过程吧。按照创建顺序,我们先来分
5、析业务容器的创建过程。业务容器的创建入口是ContextLoaderListener的contextlnitialized方法。顾名思义,ContextLoaderListener是用来监听ServletContext加载事件的。当ServletCon怕xt被加载后,监听器的contextlnitialized方法就会被Servlet容器调用。ContextLoaderListenerSpring框架提供的,它的配置方法如F:<1istener-class>org.springframework.web.co
6、ntext.ContextLoaderListener〈/listener-class>contextConfigLocationclasspath:application.xml如上,ContextLoaderListener“J通过ServletContext获取到contextConfigLocation配置。这
7、样,业务容器就可以加载application.xml配置文件了。那下而我们来分析-下ContextLoaderListener的源码吧。publicclassContextLoaderListenerextendsContextLoaderimplementsServletContextListener{//省略部分代码©Overridepublicvoidcontextlnitialized(ServletContextEventevent){//初始化WebApplicationContextinitWebApplicationContext
8、(event.getServletContext());}}publicWebApplicationContextinitWebAppl
此文档下载收益归作者所有