## Package com.sun.jersey.spi.spring.container.servlet

Provides support for Spring-based Web applications.

See:
Description

Class Summary
SpringServlet | A servlet or filter for deploying root resource classes with Spring integration.

## Package com.sun.jersey.spi.spring.container.servlet Description

Provides support for Spring-based Web applications.

Spring support is enabled by referencing the class `SpringServlet` in the web.xml. For example:

>        <web-app>
>          <context-param>
>            <param-name>contextConfigLocation</param-name>
>            <param-value>classpath:applicationContext.xml</param-value>
>          </context-param>
>          <listener>
>            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
>          </listener>
>          <servlet>
>            <servlet-name>Jersey Spring Web Application</servlet-name>
>            <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
>          </servlet>
>          <servlet-mapping>
>            <servlet-name>Jersey Spring Web Application</servlet-name>
>            <url-pattern>/*</url-pattern>
>          </servlet-mapping>
>        </web-app>

Any root resource classes or provider classes declared by Spring (in the XML configuration or by auto-wiring) will be automatically registered. It is possible to intermix Spring and non-Spring registration of classes by additionally using the normal Jersey-based registration mechanisms. For example, in the following web.xml:

>        <web-app>
>          <context-param>
>            <param-name>contextConfigLocation</param-name>
>            <param-value>classpath:applicationContext.xml</param-value>
>          </context-param>
>          <listener>
>            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
>          </listener>
>          <servlet>
>            <servlet-name>Jersey Spring Web Application</servlet-name>
>            <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
>            <init-param>
>                <param-name>com.sun.jersey.config.property.packages</param-name>
>                <param-value>managed</param-value>
>            </init-param>
>          </servlet>
>          <servlet-mapping>
>            <servlet-name>Jersey Spring Web Application</servlet-name>
>            <url-pattern>/*</url-pattern>
>          </servlet-mapping>
>        </web-app>

The above examples apply to Servlet-based configurations but they equally applicable to Filter-based configurations. For example, the following presents the same package-based configuration as above but utilizing a filter:

>        <web-app>
>          <context-param>
>            <param-name>contextConfigLocation</param-name>
>            <param-value>classpath:applicationContext.xml</param-value>
>          </context-param>
>          <listener>
>            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
>          </listener>
>          <filter>
>            <filter-name>Jersey Spring Web Application</filter-name>
>            <filter-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</filter-class>
>          </filter>
>          <filter-mapping>
>            <filter-name>Jersey Spring Web Application</filter-name>
>            <url-pattern>/*</url-pattern>
>          </filter-mapping>
>        </web-app>

Spring-based classes will be registered and any root resource and provider classes in the package `managed` will also be registered. A class will only be registered at most once so it does not matter if there are Spring managed classes present in the `managed` package. Components managed by Spring will not be managed by Jersey and the Jersey-based life-cycle annotations on a resource class will be ignored.

Copyright © 2017 Oracle Corporation. All Rights Reserved.