Spring “春天能来吗?”;“生活”;与同一webapp中的其他servlet一起使用?
我有一个WEB-INF/WEB.xml文件,其中有几个servlet,还有一个上下文 我用来引导应用程序的侦听器。我想在这里用弹簧 web应用程序。使用Spring的最佳方法是什么 整个应用程序中的注入机制—甚至在servlet中 今天存在吗Spring “春天能来吗?”;“生活”;与同一webapp中的其他servlet一起使用?,spring,retrofit,Spring,Retrofit,我有一个WEB-INF/WEB.xml文件,其中有几个servlet,还有一个上下文 我用来引导应用程序的侦听器。我想在这里用弹簧 web应用程序。使用Spring的最佳方法是什么 整个应用程序中的注入机制—甚至在servlet中 今天存在吗 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>Company's XMLRPC service</display-name>
<!-- Servlet Listeners -->
<listener>
<listener-class>com.company.download.context.DefaultServletContextListener</listener-class>
</listener>
<!-- Servlet Declarations -->
<servlet>
<servlet-name>DefaultTrackDownloadServlet</servlet-name>
<servlet-class>com.company.download.web.impl.DefaultTrackDownloadServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>DefaultXmlRpcServlet</servlet-name>
<servlet-class>com.company.download.web.impl.DefaultXmlRpcServlet</servlet-class>
</servlet>
<!-- Servlet Configurations -->
<servlet-mapping>
<servlet-name>DefaultTrackDownloadServlet</servlet-name>
<url-pattern>/track</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DefaultXmlRpcServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
公司的XMLRPC服务
com.company.download.context.DefaultServletContextListener
DefaultTrackDownloadServlet
com.company.download.web.impl.DefaultTrackDownloadServlet
DefaultXmlRpcServlet
com.company.download.web.impl.DefaultXmlRpcServlet
DefaultTrackDownloadServlet
/跟踪
DefaultXmlRpcServlet
/*
30
Spring能否与同一webapp中的其他servlet一起“生存”
是的,SpringMVC基本上只是一个DispatcherServlet
,它可以利用ContextLoaderListener
这两个类已经设置为与一个或多个ApplicationContext
实例交互,并让Spring管理声明的bean
您的自定义Servlet
类不可用。如果需要将bean注入自己的Servlet
实例,则需要从ContextLoaderListener
获取对ApplicationContext
的引用,并获取所需的bean。有几个选项,无论您是自己做还是使用内置功能
ContextLoaderListener
将加载的ApplicationContext
存储到名为
org.springframework.web.context.WebApplicationContext.ROOT
因此,您可以用它检索它(有一个常量,便于使用)
存在其他选项,请参见此处的部分选项:
ApplicationContext ac = (ApplicationContext) config.getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);