我可以在一个应用程序中同时使用Spring MVC和Spring WS吗?
我可以在一个应用程序中同时使用Spring MVC和Spring WS吗?
基本上有一个后端应用程序同时暴露了SOAP和RESTful服务。
我已决定使用Spring WS 1.5.8作为SOAP服务,以及Spring MVC 3.0作为RESTful服务,因为这是一个新功能。
在阅读关于Spring WS的一点东西之后(我是新手!),我们在web.xml中声明了一个“MessageDispatcherServlet”,这是Spring WS的前端控制器。
对于Spring MVC,我们应该在web.xml中声明“DispatcherServlet”,这也是一个前端控制器。
对于两个servlet,我们在web.xml中有不同的servlet声明。
例如,对于Spring WS,我有
springsoap org.springframework.ws.transport.http.MessageDispatcherServlet 1 springsoap /soapservices/*
对于Spring MVC(RESTful),我有
springmvc org.springframework.web.servlet.DispatcherServlet 1 springmvc /restservices/*
因此,我应该使用2个配置文件吗?一个命名为springmvc-servlet.xml,另一个为springsoap-servlet.xml?
这能做到吗?
admin 更改状态以发布 2023年5月20日
没错,这样做很好。您将MVC相关的内容放在一个文件中,将WS内容放在另一个文件中。
如果它们需要共享服务,则最好在web.xml
中使用ContextLoaderListener
声明共享上下文,在该上下文中定义应包含共享bean的第三个上下文(请参见设置示例的文档)。
还值得注意的是,MessageDispatcherServlet
只是标准DispatcherServlet
加上一些其他组件的方便组合。您可以自己声明这些组件并使用DispatcherServlet
,但这会变得很琐碎。