Spring框架中applicationContext.xml和Spring-servlet.xml

Spring框架中applicationContext.xml和Spring-servlet.xml

  • applicationContext.xml

    spring-servlet.xml

    在Spring框架中有关联吗?


  • 中声明的属性文件

    applicationContext.xml

    可供

    DispatcherServlet?

  • 关于一个相关的问题,为什么我需要一个

    *-servlet.xml

    完全没有?为什么

    applicationContext.xml

    一个人不够?


摇曳的蔷薇
浏览 889回答 3
3回答

汪汪一只猫

Spring允许在父-子层次结构中定义多个上下文。这个applicationContext.xml为“根Webapp上下文”定义bean,即与Webapp关联的上下文。这个spring-servlet.xml(或者其他名称)为一个servlet的应用程序上下文定义bean。在一个Webapp中可以有很多这样的东西,每个Springservlet一个。spring1-servlet.xml对于Servletspring1, spring2-servlet.xml对于Servletspring2).豆子spring-servlet.xml可以引用bean在applicationContext.xml,反之亦然。所有SpringMVC控制器都必须进入spring-servlet.xml背景。在大多数简单的情况下,applicationContext.xml上下文是不必要的。它通常用于包含Web应用程序中所有servlet之间共享的bean。如果您只有一个servlet,那么就没有什么意义了,除非您对它有一个特定的用途。

翻翻过去那场雪

设想1在客户端应用程序(应用程序不是web应用程序,例如可能是Swing应用程序)private&nbsp;static&nbsp;ApplicationContext&nbsp;context&nbsp;=&nbsp;new&nbsp;&nbsp;ClassPathXmlApplicationContext("test-client.xml");context.getBean(name);不需要web.xml..ApplicationContext作为获取bean服务的容器。不需要Web服务器容器。在……里面test-client.xml可以有没有远程处理的简单bean,有远程处理的bean。结语*在场景1中,应用程序上下文和DispatcherServlet没有关系。设想2在服务器应用程序(部署在服务器(例如Tomcat)中的应用程序)中。通过客户端程序远程访问服务(例如Swing应用程序)定义侦听器web.xml<listener> &nbsp;&nbsp;&nbsp;&nbsp;<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>在服务器启动时ContextLoaderListener中定义的bean。applicationContext.xml.假设您在applicationContext.xml:<import&nbsp;resource="test1.xml"&nbsp;/><import&nbsp;resource="test2.xml"&nbsp;/><import&nbsp;resource="test3.xml"&nbsp;/><import&nbsp;resource="test4.xml"&nbsp;/>bean是从所有四个配置文件实例化的。test1.xml,&nbsp;test2.xml,&nbsp;test3.xml,&nbsp;test4.xml.结语*在场景2中,应用程序上下文和DispatcherServlet没有关系。设想3在一个带有SpringMVC的Web应用程序中。在……里面web.xml界定:<servlet> &nbsp;&nbsp;&nbsp;&nbsp;<servlet-name>springweb</servlet-name> &nbsp;&nbsp;&nbsp;&nbsp;<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>&nbsp;&nbsp;&nbsp;&nbsp;</servlet><servlet-mapping> &nbsp;&nbsp;&nbsp;&nbsp;<servlet-name>springweb</servlet-name> &nbsp;&nbsp;&nbsp;&nbsp;<url-pattern>*.action</url-pattern></servlet-mapping>当Tomcat启动时,Springweb-servlet.xml实例化。DispatcherServlet延展FrameworkServlet..在……里面FrameworkServletbean实例化用于SpringWeb。在我们的情况下弹簧网是FrameworkServlet结语*在场景3中,应用程序上下文和DispatcherServlet没有关系。设想4在Web应用程序中使用SpringMVC。Springweb-servlet.xml对于servlet和applicationContext.xml用于访问服务器程序中的业务服务或访问另一个服务器程序中的DB服务。在……里面web.xml定义如下:<listener> &nbsp;&nbsp;&nbsp;&nbsp;<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet> &nbsp;&nbsp;&nbsp;&nbsp;<servlet-name>springweb</servlet-name> &nbsp;&nbsp;&nbsp;&nbsp;<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping> &nbsp;&nbsp;&nbsp;&nbsp;<servlet-name>springweb</servlet-name> &nbsp;&nbsp;&nbsp;&nbsp;<url-pattern>*.action</url-pattern></servlet-mapping>在服务器启动时,ContextLoaderListener中定义的bean。applicationContext.xml假设你已在此声明:<import&nbsp;resource="test1.xml"&nbsp;/><import&nbsp;resource="test2.xml"&nbsp;/><import&nbsp;resource="test3.xml"&nbsp;/><import&nbsp;resource="test4.xml"&nbsp;/>这些bean都是从所有四个实例中实例化的。test1.xml,&nbsp;test2.xml,&nbsp;test3.xml,&nbsp;test4.xml..中定义的bean实例化完成后,applicationContext.xml中定义的beanSpringweb-servlet.xml实例化。所以实例化顺序是根是应用程序上下文,然后是FrameworkServlet。现在,这说明了为什么它们在哪种情况下是重要的。

慕森卡

我还要补充一点。在……里面spring-servlet.xml我们包括组件扫描控制器包。在下面的示例中,我们包括控制器包的过滤器注释。<!--&nbsp;Scans&nbsp;for&nbsp;annotated&nbsp;@Controllers&nbsp;in&nbsp;the&nbsp;classpath&nbsp;--><context:component-scan&nbsp;base-package="org.test.web"&nbsp;use-default-filters="false"> &nbsp;&nbsp;&nbsp;&nbsp;<context:include-filter&nbsp;type="annotation"&nbsp;expression="org.springframework.stereotype.Controller"/></context:component-scan>在……里面applicationcontext.xml我们为不包括控制器的剩余包添加过滤器。<context:component-scan&nbsp;base-package="org.test"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<context:exclude-filter&nbsp;type="annotation"&nbsp;expression="org.springframework.stereotype.Controller"/> &nbsp;&nbsp;&nbsp;&nbsp;</context:component-scan>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java