This change adds support for configuring ResourceResolvers and ResourceTransformers with ResourceHttpRequestHandlers. This is an example configuration: <mvc:resources mapping="/resources/**" location="/"> <mvc:resolvers> <bean class="org.springframework.web.servlet.resource.PathResourceResolver"/> <ref bean="myResourceResolver"/> </mvc:resolvers> <mvc:transformers> <bean class="org.springframework.web.servlet.resource.CssLinkResourceTransformer" /> </mvc:transformers> </mvc:resources> <bean id="myResourceResolver" class="org.example.resource.MyResourceResolver"/> Issue: SPR-10951master
parent
87cbade8be
commit
ea4a5d4722
5 changed files with 679 additions and 1 deletions
@ -0,0 +1,578 @@ |
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
|
||||
<xsd:schema xmlns="http://www.springframework.org/schema/mvc" |
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
||||
xmlns:beans="http://www.springframework.org/schema/beans" |
||||
xmlns:tool="http://www.springframework.org/schema/tool" |
||||
targetNamespace="http://www.springframework.org/schema/mvc" |
||||
elementFormDefault="qualified" |
||||
attributeFormDefault="unqualified"> |
||||
|
||||
<xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-4.1.xsd" /> |
||||
<xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-4.1.xsd" /> |
||||
|
||||
<xsd:element name="annotation-driven"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="java:org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><![CDATA[ |
||||
Configures the annotation-driven Spring MVC Controller programming model. |
||||
Note that this tag works in Web MVC only, not in Portlet MVC! |
||||
|
||||
See org.springframework.web.servlet.config.annotation.EnableWebMvc Javadoc for |
||||
information on code-based alternatives to enabling annotation-driven Spring MVC |
||||
support. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:all minOccurs="0"> |
||||
<xsd:element name="path-matching" minOccurs="0"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Configures the path matching part of the Spring MVC Controller programming model. |
||||
Like annotation-driven, code-based alternatives are also documented in EnableWebMvc Javadoc. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="suffix-pattern" type="xsd:boolean"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Whether to use suffix pattern match (".*") when matching patterns to requests. If enabled |
||||
a method mapped to "/users" also matches to "/users.*". |
||||
The default value is true. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="trailing-slash" type="xsd:boolean"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Whether to match to URLs irrespective of the presence of a trailing slash. |
||||
If enabled a method mapped to "/users" also matches to "/users/". |
||||
The default value is true. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="registered-suffixes-only" type="xsd:boolean"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Whether to use suffix pattern match for registered file extensions only when matching patterns to requests. |
||||
If enabled, a controller method mapped to "/users" also matches to "/users.json" assuming ".json" is a file extension registered with |
||||
the provided ContentNegotiationManager. This can be useful for allowing only specific URL extensions to be used as well as in cases |
||||
where a "." in the URL path can lead to ambiguous interpretation of path variable content, (e.g. given "/users/{user}" and incoming |
||||
URLs such as "/users/john.j.joe" and "/users/john.j.joe.json"). |
||||
If enabled, this attribute also enables suffix-pattern. The default value is false. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="path-helper" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The bean name of the UrlPathHelper to use for resolution of lookup paths. |
||||
Use this to override the default UrlPathHelper with a custom subclass, or to share common UrlPathHelper settings across |
||||
multiple HandlerMappings and MethodNameResolvers. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="path-matcher" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The bean name of the PathMatcher implementation to use for matching URL paths against registered URL patterns. |
||||
Default is AntPathMatcher. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="message-converters" minOccurs="0"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Configures one or more HttpMessageConverter types to use for converting @RequestBody method parameters and @ResponseBody method return values. |
||||
Using this configuration element is optional. |
||||
HttpMessageConverter registrations provided here will take precedence over HttpMessageConverter types registered by default. |
||||
Also see the register-defaults attribute if you want to turn off default registrations entirely. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:choice maxOccurs="unbounded"> |
||||
<xsd:element ref="beans:bean"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
An HttpMessageConverter bean definition. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
<xsd:element ref="beans:ref"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
A reference to an HttpMessageConverter bean. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
</xsd:choice> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="register-defaults" type="xsd:boolean" default="true"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Whether or not default HttpMessageConverter registrations should be added in addition to the ones provided within this element. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="argument-resolvers" minOccurs="0"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Configures HandlerMethodArgumentResolver types to support custom controller method argument types. |
||||
Using this option does not override the built-in support for resolving handler method arguments. |
||||
To customize the built-in support for argument resolution configure RequestMappingHandlerAdapter directly. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element ref="beans:bean" minOccurs="1" maxOccurs="unbounded"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The HandlerMethodArgumentResolver (or WebArgumentResolver for backwards compatibility) bean definition. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
</xsd:sequence> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="return-value-handlers" minOccurs="0"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Configures HandlerMethodReturnValueHandler types to support custom controller method return value handling. |
||||
Using this option does not override the built-in support for handling return values. |
||||
To customize the built-in support for handling return values configure RequestMappingHandlerAdapter directly. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element ref="beans:bean" minOccurs="1" maxOccurs="unbounded"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The HandlerMethodReturnValueHandler bean definition. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
</xsd:sequence> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="async-support" minOccurs="0"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Configure options for asynchronous request processing. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:all minOccurs="0"> |
||||
<xsd:element name="callable-interceptors" minOccurs="0"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The ordered set of interceptors that intercept the lifecycle of concurrently executed |
||||
requests, which start after a controller returns a java.util.concurrent.Callable. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element ref="beans:bean" minOccurs="1" maxOccurs="unbounded"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Registers a CallableProcessingInterceptor. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
</xsd:sequence> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="deferred-result-interceptors" minOccurs="0"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The ordered set of interceptors that intercept the lifecycle of concurrently executed |
||||
requests, which start after a controller returns a DeferredResult. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element ref="beans:bean" minOccurs="1" maxOccurs="unbounded"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Registers a DeferredResultProcessingInterceptor. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
</xsd:sequence> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:all> |
||||
<xsd:attribute name="task-executor" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="java:org.springframework.core.task.AsyncTaskExecutor"><![CDATA[ |
||||
The bean name of a default AsyncTaskExecutor to use when a controller method returns a {@link Callable}. |
||||
Controller methods can override this default on a per-request basis by returning an AsyncTask. |
||||
By default a SimpleAsyncTaskExecutor is used which does not re-use threads and is not recommended for production. |
||||
]]></xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:expected-type type="java:org.springframework.core.task.AsyncTaskExecutor" /> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="default-timeout" type="xsd:long"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Specify the amount of time, in milliseconds, before asynchronous request handling times out. |
||||
In Servlet 3, the timeout begins after the main request processing thread has exited and ends when the request is dispatched again for further processing of the concurrently produced result. |
||||
If this value is not set, the default timeout of the underlying implementation is used, e.g. 10 seconds on Tomcat with Servlet 3. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:all> |
||||
<xsd:attribute name="conversion-service" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="java:org.springframework.core.convert.ConversionService"><![CDATA[ |
||||
The bean name of the ConversionService that is to be used for type conversion during field binding. |
||||
This attribute is not required, and only needs to be specified explicitly if custom converters need to be configured. |
||||
If not specified, a default FormattingConversionService is registered that contains converters to/from standard JDK types. |
||||
In addition, full support for date/time formatting will be installed if the Joda Time library is present on the classpath. |
||||
]]></xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:expected-type type="java:org.springframework.core.convert.ConversionService" /> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="validator" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="java:org.springframework.validation.Validator"><![CDATA[ |
||||
The bean name of the Validator that is to be used to validate Controller model objects. |
||||
This attribute is not required, and only needs to be specified explicitly if a custom Validator needs to be configured. |
||||
If not specified, JSR-303 validation will be installed if a JSR-303 provider is present on the classpath. |
||||
]]></xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:expected-type type="java:org.springframework.validation.Validator" /> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="content-negotiation-manager" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="java:org.springframework.web.accept.ContentNegotiationManager"><![CDATA[ |
||||
The bean name of a ContentNegotiationManager that is to be used to determine requested media types. If not specified, |
||||
a default ContentNegotiationManager is configured that checks the request path extension first and the "Accept" header |
||||
second where path extensions such as ".json", ".xml", ".atom", and ".rss" are recognized if Jackson, JAXB2, or the |
||||
Rome libraries are available. As a fallback option, the path extension is also used to perform a lookup through |
||||
the ServletContext and the Java Activation Framework (if available). |
||||
]]></xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:expected-type type="java:org.springframework.web.accept.ContentNegotiationManager" /> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="message-codes-resolver" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The bean name of a MessageCodesResolver to use to build message codes from data binding and validation error codes. |
||||
This attribute is not required. |
||||
If not specified the DefaultMessageCodesResolver is used. |
||||
]]></xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:expected-type type="java:org.springframework.validation.MessageCodesResolver" /> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="enable-matrix-variables" type="xsd:boolean"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Matrix variables can appear in any path segment, each matrix variable separated with a ";" (semicolon). |
||||
For example "/cars;color=red;year=2012". By default they're removed from the URL. If this property |
||||
is set to true, matrix variables are not removed from the URL, and the request mapping pattern |
||||
must use URI variable in path segments where matrix variables are expected. For example "/{cars}". |
||||
Matrix variables can then be injected into a controller method with @MatrixVariable. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="ignore-default-model-on-redirect" type="xsd:boolean"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
By default the content of the "default" model is used both during rendering and redirect scenarios. |
||||
Alternatively a controller method can declare a RedirectAttributes argument and use it to provide attributes for a redirect. |
||||
Setting this flag to true ensures the "default" model is never used in a redirect scenario even if a RedirectAttributes argument is not declared. |
||||
Setting it to false means the "default" model may be used in a redirect if the controller method doesn't declare a RedirectAttributes argument. |
||||
The default setting is false but new applications should consider setting it to true. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
|
||||
<xsd:complexType name="resource-resolvers"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="org.springframework.web.servlet.resource.ResourceResolver"><![CDATA[ |
||||
A list of ResourceResolver beans definition and references. |
||||
A ResourceResolver provides mechanisms for resolving an incoming request to an actual Resource and for obtaining the public |
||||
URL path that clients should use when requesting the resource. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:sequence> |
||||
<xsd:choice maxOccurs="unbounded"> |
||||
<xsd:element ref="beans:bean"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="org.springframework.web.servlet.resource.ResourceResolver"><![CDATA[ |
||||
A ResourceResolver bean definition. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
<xsd:element ref="beans:ref"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="org.springframework.web.servlet.resource.ResourceResolver"><![CDATA[ |
||||
A reference to a ResourceResolver bean. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
</xsd:choice> |
||||
</xsd:sequence> |
||||
</xsd:complexType> |
||||
|
||||
<xsd:complexType name="resource-transformers"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="org.springframework.web.servlet.resource.ResourceTransformer"><![CDATA[ |
||||
A list of ResourceTransformer beans definition and references. |
||||
A ResourceTransformer provides mechanisms for transforming the content of a resource. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:sequence> |
||||
<xsd:choice maxOccurs="unbounded"> |
||||
<xsd:element ref="beans:bean"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="org.springframework.web.servlet.resource.ResourceTransformer"><![CDATA[ |
||||
A ResourceTransformer bean definition. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
<xsd:element ref="beans:ref"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="org.springframework.web.servlet.resource.ResourceTransformer"><![CDATA[ |
||||
A reference to a ResourceTransformer bean. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
</xsd:choice> |
||||
</xsd:sequence> |
||||
</xsd:complexType> |
||||
|
||||
<xsd:element name="resources"> |
||||
<xsd:annotation> |
||||
<xsd:documentation |
||||
source="java:org.springframework.web.servlet.resource.ResourceHttpRequestHandler"><![CDATA[ |
||||
Configures a handler for serving static resources such as images, js, and, css files with cache headers optimized for efficient |
||||
loading in a web browser. Allows resources to be served out of any path that is reachable via Spring's Resource handling. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="resolvers" type="resource-resolvers" minOccurs="0" maxOccurs="1"/> |
||||
<xsd:element name="transformers" type="resource-transformers" minOccurs="0" maxOccurs="1"/> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="mapping" use="required" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The URL mapping pattern, within the current Servlet context, to use for serving resources from this handler, such as "/resources/**" |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="location" use="required" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The resource location from which to serve static content, specified at a Spring Resource pattern. |
||||
Each location must point to a valid directory. Multiple locations may be specified as a comma-separated list, |
||||
and the locations will be checked for a given resource in the order specified. For example, a value of |
||||
"/, classpath:/META-INF/public-web-resources/" will allow resources to be served both from the web app |
||||
root and from any JAR on the classpath that contains a /META-INF/public-web-resources/ directory, |
||||
with resources in the web app root taking precedence. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="cache-period" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
<![CDATA[ |
||||
Specifies the cache period for the resources served by this resource handler, in seconds. |
||||
The default is to not send any cache headers but rather to rely on last-modified timestamps only. |
||||
Set this to 0 in order to send cache headers that prevent caching, or to a positive number of |
||||
seconds in order to send cache headers with the given max-age value. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="order" type="xsd:token"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
<![CDATA[ |
||||
Specifies the order of the HandlerMapping for the resource handler. The default order is Ordered.LOWEST_PRECEDENCE - 1. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
|
||||
<xsd:element name="default-servlet-handler"> |
||||
<xsd:annotation> |
||||
<xsd:documentation |
||||
source="java:org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler"><![CDATA[ |
||||
Configures a handler for serving static resources by forwarding to the Servlet container's default Servlet. Use of this |
||||
handler allows using a "/" mapping with the DispatcherServlet while still utilizing the Servlet container to serve static |
||||
resources. |
||||
This handler will forward all requests to the default Servlet. Therefore it is important that it remains last in the |
||||
order of all other URL HandlerMappings. That will be the case if you use the "annotation-driven" element or alternatively |
||||
if you are setting up your customized HandlerMapping instance be sure to set its "order" property to a value lower than |
||||
that of the DefaultServletHttpRequestHandler, which is Integer.MAX_VALUE. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="default-servlet-name" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The name of the default Servlet to forward to for static resource requests. The handler will try to auto-detect the container's |
||||
default Servlet at startup time using a list of known names. If the default Servlet cannot be detected because of using an unknown |
||||
container or because it has been manually configured, the servlet name must be set explicitly. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
|
||||
<xsd:element name="interceptors"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The ordered set of interceptors that intercept HTTP Servlet Requests handled by Controllers. |
||||
Interceptors allow requests to be pre/post processed before/after handling. |
||||
Each inteceptor must implement the org.springframework.web.servlet.HandlerInterceptor or |
||||
org.springframework.web.context.request.WebRequestInterceptor interface. |
||||
The interceptors in this set are automatically configured on each registered HandlerMapping. |
||||
The URI paths each interceptor applies to are configurable. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:choice maxOccurs="unbounded"> |
||||
<xsd:choice> |
||||
<xsd:element ref="beans:bean"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Registers an interceptor that intercepts every request regardless of its URI path.. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
<xsd:element ref="beans:ref"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Registers an interceptor that intercepts every request regardless of its URI path.. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
</xsd:choice> |
||||
<xsd:element name="interceptor"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="java:org.springframework.web.servlet.handler.MappedInterceptor"><![CDATA[ |
||||
Registers an interceptor that interceptors requests sent to one or more URI paths. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="mapping" maxOccurs="unbounded"> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="path" type="xsd:string" use="required"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
A path into the application intercepted by this interceptor. |
||||
Exact path mapping URIs (such as "/myPath") are supported as well as Ant-stype path patterns (such as /myPath/**). |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="exclude-mapping" minOccurs="0" maxOccurs="unbounded"> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="path" type="xsd:string" use="required"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
A path into the application that should not be intercepted by this interceptor. |
||||
Exact path mapping URIs (such as "/admin") are supported as well as Ant-stype path patterns (such as /admin/**). |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:choice> |
||||
<xsd:element ref="beans:bean"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The interceptor's bean definition. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
<xsd:element ref="beans:ref"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
A reference to an interceptor bean. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
</xsd:choice> |
||||
</xsd:sequence> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:choice> |
||||
<xsd:attribute name="path-matcher" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation source="java:org.springframework.util.PathMatcher"><![CDATA[ |
||||
The bean name of a PathMatcher implementation to use with nested interceptors. This is an optional, |
||||
advanced property required only if using custom PathMatcher implementations that support mapping |
||||
metadata other than the Ant path patterns supported by default. |
||||
]]></xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:expected-type type="java:org.springframework.util.PathMatcher" /> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
|
||||
<xsd:element name="view-controller"> |
||||
<xsd:annotation> |
||||
<xsd:documentation |
||||
source="java:org.springframework.web.servlet.mvc.ParameterizableViewController"><![CDATA[ |
||||
Defines a simple Controller that selects a view to render the response. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="path" type="xsd:string" use="required"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The URL path the view is mapped to. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="view-name" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The name of the view to render. Optional. |
||||
If not specified, the view name will be determined from the current HttpServletRequest |
||||
by the DispatcherServlet's RequestToViewNameTranslator. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
|
||||
</xsd:schema> |
@ -0,0 +1,26 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<beans xmlns="http://www.springframework.org/schema/beans" |
||||
xmlns:mvc="http://www.springframework.org/schema/mvc" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd |
||||
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> |
||||
|
||||
<mvc:resources mapping="/resources/**" location="/, classpath:/META-INF/"> |
||||
<mvc:resolvers> |
||||
<bean class="org.springframework.web.servlet.resource.PathResourceResolver"/> |
||||
<ref bean="gzipResourceResolver" /> |
||||
</mvc:resolvers> |
||||
<mvc:transformers> |
||||
<ref bean="cachingResourceTransformer" /> |
||||
<bean class="org.springframework.web.servlet.resource.CssLinkResourceTransformer" /> |
||||
</mvc:transformers> |
||||
</mvc:resources> |
||||
|
||||
<bean id="gzipResourceResolver" class="org.springframework.web.servlet.resource.GzipResourceResolver" /> |
||||
<bean id="resourceCache" class="org.springframework.cache.concurrent.ConcurrentMapCache"> |
||||
<constructor-arg name="name" value="resourceCache"/> |
||||
</bean> |
||||
<bean id="cachingResourceTransformer" class="org.springframework.web.servlet.resource.CachingResourceTransformer"> |
||||
<constructor-arg name="cache" ref="resourceCache" /> |
||||
</bean> |
||||
</beans> |
Loading…
Reference in new issue