翻翻过去那场雪
设想1在客户端应用程序(应用程序不是web应用程序,例如可能是Swing应用程序)private static ApplicationContext context = new 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>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>在服务器启动时ContextLoaderListener中定义的bean。applicationContext.xml.假设您在applicationContext.xml:<import resource="test1.xml" /><import resource="test2.xml" /><import resource="test3.xml" /><import resource="test4.xml" />bean是从所有四个配置文件实例化的。test1.xml, test2.xml, test3.xml, test4.xml.结语*在场景2中,应用程序上下文和DispatcherServlet没有关系。设想3在一个带有SpringMVC的Web应用程序中。在……里面web.xml界定:<servlet>
<servlet-name>springweb</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet><servlet-mapping>
<servlet-name>springweb</servlet-name>
<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>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet>
<servlet-name>springweb</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping>
<servlet-name>springweb</servlet-name>
<url-pattern>*.action</url-pattern></servlet-mapping>在服务器启动时,ContextLoaderListener中定义的bean。applicationContext.xml假设你已在此声明:<import resource="test1.xml" /><import resource="test2.xml" /><import resource="test3.xml" /><import resource="test4.xml" />这些bean都是从所有四个实例中实例化的。test1.xml, test2.xml, test3.xml, test4.xml..中定义的bean实例化完成后,applicationContext.xml中定义的beanSpringweb-servlet.xml实例化。所以实例化顺序是根是应用程序上下文,然后是FrameworkServlet。现在,这说明了为什么它们在哪种情况下是重要的。