好,
我们有一个类似的方案,将现有的 Jersey Web服务应用程序配置为使用 Spring 进行依赖项注入。我们的 Jersey网络
应用扩展了 ContextLoaderListener ,如下所示
public class XServletContextListener extends ContextLoaderListener { ... @Override public void contextInitialized(ServletContextEvent arg0) { super.contextInitialized(arg0); .... } @Override public void contextDestroyed(ServletContextEvent arg0) { super.contextDestroyed(arg0); .... }}其中 ContextLoaderListener的 是
import org.springframework.web.context.ContextLoaderListener;
我们包括了 jersey-spring 桥以及所有 spring 依赖项,包括 applicationContext.xml
,如下所示
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <context:component-scan base-package="com.xxx.*" /> .... ....</beans>
显然需要确保 XServletContextListener 包含在 web.xml中 ,如下所示
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value></context-param><listener> <listener-class>com.xxx.**.XServletContextListener</listener-class></listener>
其次是 servlet 及其 init-param 值和 servlet 映射。您显然可以采用注释配置代替xml
confib,在这种情况下,您将需要使用 WebListener 注释。
我们使用各种注释,例如
@Component for objects@Service for services @Repository for DAOs@Controller for controllers/resources @ContextConfiguration for tests
一切都由Spring框架加载和 自动接线 。



