.Attributes of the JMS <jca-listener-container/> element
[cols="1,6"]
|===
| Attribute| Description
| Attribute| Description
| factory-id
| Exposes the settings defined by this element as a `JmsListenerContainerFactory`
@ -3262,7 +3262,7 @@ these registration behaviors are summarized on the following table:
@@ -3262,7 +3262,7 @@ these registration behaviors are summarized on the following table:
.Registration Behaviors
[cols="1,4"]
|===
| Registration behavior| Explanation
| Registration behavior| Explanation
| `REGISTRATION_FAIL_ON_EXISTING`
| This is the default registration behavior. If an `MBean` instance has already been
| Used by `MetadataNamingStrategy` to determine the `ObjectName` of a managed resource
@ -4903,7 +4903,7 @@ corresponding methods called on the CCI `Interaction` interface:
@@ -4903,7 +4903,7 @@ corresponding methods called on the CCI `Interaction` interface:
.Usage of Interaction execute methods
[cols="3,1,3"]
|===
| CciTemplate method signature| CciTemplate outputRecordCreator property| execute method called on the CCI Interaction
| CciTemplate method signature| CciTemplate outputRecordCreator property| execute method called on the CCI Interaction
| Record execute(InteractionSpec, Record)
| not set
@ -5270,7 +5270,7 @@ The operation object approach uses records in the same manner as the `CciTemplat
@@ -5270,7 +5270,7 @@ The operation object approach uses records in the same manner as the `CciTemplat
.Usage of Interaction execute methods
[cols="3,1,3"]
|===
| MappingRecordOperation method signature| MappingRecordOperation outputRecordCreator property| execute method called on the CCI Interaction
| MappingRecordOperation method signature| MappingRecordOperation outputRecordCreator property| execute method called on the CCI Interaction
| Object execute(Object)
| not set
@ -7413,7 +7413,7 @@ javadoc for more details].
@@ -7413,7 +7413,7 @@ javadoc for more details].
.Cache annotation settings
[cols="1,1,1,3"]
|===
| XML Attribute| Annotation Attribute| Default| Description
| XML Attribute| Annotation Attribute| Default| Description
@ -258,27 +258,27 @@ the server APIs are used and where Reactive Streams support comes from:
@@ -258,27 +258,27 @@ the server APIs are used and where Reactive Streams support comes from:
[cols="1,2,2", options="header"]
|===
|Server name|Server API used|Reactive Streams support
|Server name|Server API used|Reactive Streams support
|Servlet 3.1 non-blocking I/O; Tomcat API to read and write ByteBuffers vs byte[]
|spring-web: Servlet 3.1 non-blocking I/O to Reactive Streams bridge
|Tomcat
|Servlet 3.1 non-blocking I/O; Tomcat API to read and write ByteBuffers vs byte[]
|spring-web: Servlet 3.1 non-blocking I/O to Reactive Streams bridge
|Jetty
|Servlet 3.1 non-blocking I/O; Jetty API to write ByteBuffers vs byte[]
|spring-web: Servlet 3.1 non-blocking I/O to Reactive Streams bridge
|Jetty
|Servlet 3.1 non-blocking I/O; Jetty API to write ByteBuffers vs byte[]
|spring-web: Servlet 3.1 non-blocking I/O to Reactive Streams bridge
|Servlet 3.1 container
|Servlet 3.1 non-blocking I/O
|spring-web: Servlet 3.1 non-blocking I/O to Reactive Streams bridge
|Servlet 3.1 container
|Servlet 3.1 non-blocking I/O
|spring-web: Servlet 3.1 non-blocking I/O to Reactive Streams bridge
|===
Here are required dependencies,
@ -406,44 +406,40 @@ The table below lists the components that `WebHttpHandlerBuilder` detects:
@@ -406,44 +406,40 @@ The table below lists the components that `WebHttpHandlerBuilder` detects:
[cols="2,2,1,3", options="header"]
|===
|Bean name|Bean type|Count|Description
|<any>
|`WebExceptionHandler`
|0..N
|Exception handlers to apply after all ``WebFilter``'s and the target `WebHandler`.
|<any>
|`WebFilter`
|0..N
|Filters to invoke before and after the target `WebHandler`.
|"webHandler"
|`WebHandler`
|1
|The handler for the request.
|"webSessionManager"
|`WebSessionManager`
|0..1
|The manager for ``WebSession``'s exposed through a method on `ServerWebExchange`.
`DefaultWebSessionManager` by default.
|"serverCodecConfigurer"
|`ServerCodecConfigurer`
|0..1
|For access to ``HttpMessageReader``'s for parsing form data and multipart data that's
then exposed through methods on `ServerWebExchange`.
`ServerCodecConfigurer.create()` by default.
|"localeContextResolver"
|`LocaleContextResolver`
|0..1
|The resolver for `LocaleContext` exposed through a method on `ServerWebExchange`.
`AcceptHeaderLocaleContextResolver` by default.
| Bean name | Bean type | Count | Description
| <any>
| `WebExceptionHandler`
| 0..N
| Exception handlers to apply after all ``WebFilter``'s and the target `WebHandler`.
| <any>
| `WebFilter`
| 0..N
| Filters to invoke before and after the target `WebHandler`.
| "webHandler"
| `WebHandler`
| 1
| The handler for the request.
| "webSessionManager"
| `WebSessionManager`
| 0..1
| The manager for ``WebSession``'s exposed through a method on `ServerWebExchange`.
`DefaultWebSessionManager` by default.
| "serverCodecConfigurer"
| `ServerCodecConfigurer`
| 0..1
| For access to ``HttpMessageReader``'s for parsing form data and multipart data that's then
exposed through methods on `ServerWebExchange`. `ServerCodecConfigurer.create()` by default.
| "localeContextResolver"
| `LocaleContextResolver`
| 0..1
| The resolver for `LocaleContext` exposed through a method on `ServerWebExchange`.
`AcceptHeaderLocaleContextResolver` by default.
|===
@ -622,7 +618,7 @@ there are also some other beans detected at a lower level, see
@@ -622,7 +618,7 @@ there are also some other beans detected at a lower level, see
[[webflux-special-beans-table]]
[cols="1,2", options="header"]
|===
| Bean type| Explanation
| Bean type| Explanation
| HandlerMapping
| Map a request to a handler. The mapping is based on some criteria the details of
@ -642,7 +638,7 @@ there are also some other beans detected at a lower level, see
@@ -642,7 +638,7 @@ there are also some other beans detected at a lower level, see
| HandlerResultHandler
| Process the result from the handler invocation and finalize the response.
See <<webflux-resulthandling>>.
See <<webflux-resulthandling>>.
|===
@ -1139,111 +1135,109 @@ etc, and is equivalent to `required=false`.
@@ -1139,111 +1135,109 @@ etc, and is equivalent to `required=false`.
[cols="1,2", options="header"]
|===
|Controller method argument|Description
|Controller method argument|Description
|`ServerWebExchange`
|Access to the full `ServerWebExchange` -- container for the HTTP request and response,
request and session attributes, `checkNotModified` methods, and others.
|`ServerWebExchange`
|Access to the full `ServerWebExchange` -- container for the HTTP request and response,
request and session attributes, `checkNotModified` methods, and others.
|`ServerHttpRequest`, `ServerHttpResponse`
|Access to the HTTP request or response.
|`ServerHttpRequest`, `ServerHttpResponse`
|Access to the HTTP request or response.
|`WebSession`
|Access to the session; this does not force the start of a new session unless attributes
are added. Supports reactive types.
|`WebSession`
|Access to the session; this does not force the start of a new session unless attributes
are added. Supports reactive types.
|`java.security.Principal`
|Currently authenticated user; possibly a specific `Principal` implementation class if known.
Supports reactive types.
|`java.security.Principal`
|Currently authenticated user; possibly a specific `Principal` implementation class if known.
Supports reactive types.
|`org.springframework.http.HttpMethod`
|The HTTP method of the request.
|`org.springframework.http.HttpMethod`
|The HTTP method of the request.
|`java.util.Locale`
|The current request locale, determined by the most specific `LocaleResolver` available, in
effect, the configured `LocaleResolver`/`LocaleContextResolver`.
|`java.util.Locale`
|The current request locale, determined by the most specific `LocaleResolver` available, in
effect, the configured `LocaleResolver`/`LocaleContextResolver`.
|Java 6+: `java.util.TimeZone` +
Java 8+: `java.time.ZoneId`
|The time zone associated with the current request, as determined by a `LocaleContextResolver`.
| `java.util.TimeZone` + `java.time.ZoneId`
| The time zone associated with the current request, as determined by a `LocaleContextResolver`.
|`@PathVariable`
|For access to URI template variables.
See <<webflux-ann-requestmapping-uri-templates>>.
| `@PathVariable`
| For access to URI template variables. See <<webflux-ann-requestmapping-uri-templates>>.
|`@MatrixVariable`
|For access to name-value pairs in URI path segments. See <<webflux-ann-matrix-variables>>.
|`@MatrixVariable`
|For access to name-value pairs in URI path segments. See <<webflux-ann-matrix-variables>>.
|`@RequestParam`
|For access to Servlet request parameters. Parameter values are converted to the declared
method argument type. See <<webflux-ann-requestparam>>.
|`@RequestParam`
|For access to Servlet request parameters. Parameter values are converted to the declared
method argument type. See <<webflux-ann-requestparam>>.
Note that use of `@RequestParam` is optional, e.g. to set its attributes.
See "Any other argument" further below in this table.
Note that use of `@RequestParam` is optional, e.g. to set its attributes.
See "Any other argument" further below in this table.
|`@RequestHeader`
|For access to request headers. Header values are converted to the declared method argument
type. See <<webflux-ann-requestheader>>.
|`@RequestHeader`
|For access to request headers. Header values are converted to the declared method argument
type. See <<webflux-ann-requestheader>>.
|`@CookieValue`
|For access to cookies. Cookies values are converted to the declared method argument
type. See <<webflux-ann-cookievalue>>.
|`@CookieValue`
|For access to cookies. Cookies values are converted to the declared method argument type.
See <<webflux-ann-cookievalue>>.
|`@RequestBody`
|For access to the HTTP request body. Body content is converted to the declared method
argument type using ``HttpMessageReader``'s. Supports reactive types.
<<webflux-ann-requestbody>>.
|`@RequestBody`
|For access to the HTTP request body. Body content is converted to the declared method
argument type using ``HttpMessageReader``'s. Supports reactive types.
See <<webflux-ann-requestbody>>.
|`HttpEntity<B>`
|For access to request headers and body. The body is converted with ``HttpMessageReader``'s.
Supports reactive types. See <<webflux-ann-httpentity>>.
|`HttpEntity<B>`
|For access to request headers and body. The body is converted with ``HttpMessageReader``'s.
Supports reactive types. See <<webflux-ann-httpentity>>.
|`@RequestPart`
|For access to a part in a "multipart/form-data" request. Supports reactive types.
See <<webflux-multipart-forms>> and <<webflux-multipart>>.
|`@RequestPart`
|For access to a part in a "multipart/form-data" request. Supports reactive types.
See <<webflux-multipart-forms>> and <<webflux-multipart>>.
@ -2590,8 +2584,7 @@ evaluated and if present a `304` status code is returned.
@@ -2590,8 +2584,7 @@ evaluated and if present a `304` status code is returned.
}
----
// TODO:
// See also <<webflux-caching-static-resources, HTTP caching support for static resources>>.
// TODO: See also <<webflux-caching-static-resources, HTTP caching support for static resources>>.
The resource handler also supports a chain of
{api-spring-framework}/web/reactive/resource/ResourceResolver.html[ResourceResolver]'s and
@ -520,24 +520,23 @@ The table below lists the available `HandlerExceptionResolver` implementations:
@@ -520,24 +520,23 @@ The table below lists the available `HandlerExceptionResolver` implementations:
[cols="1,2", options="header"]
.HandlerExceptionResolver implementations
|===
| HandlerExceptionResolver| Description
| HandlerExceptionResolver| Description
| `SimpleMappingExceptionResolver`
| A mapping between exception class names and error view names. Useful for rendering
| Resolves exceptions raised by Spring MVC and maps them to HTTP status codes.
Also see alternative `ResponseEntityExceptionHandler` and <<mvc-ann-rest-exceptions>>.
Also see alternative `ResponseEntityExceptionHandler` and <<mvc-ann-rest-exceptions>>.
| `ResponseStatusExceptionResolver`
| Resolves exceptions with the `@ResponseStatus` annotation and maps them to HTTP status
codes based on the value in the annotation.
codes based on the value in the annotation.
| `ExceptionHandlerExceptionResolver`
| Resolves exceptions by invoking an `@ExceptionHandler` method in an `@Controller` or an
`@ControllerAdvice` class. See <<mvc-ann-exceptionhandler>>.
`@ControllerAdvice` class. See <<mvc-ann-exceptionhandler>>.
|===
@ -811,7 +810,7 @@ maximum age. Find below an example of defining a `CookieLocaleResolver`.
@@ -811,7 +810,7 @@ maximum age. Find below an example of defining a `CookieLocaleResolver`.
.CookieLocaleResolver properties
[cols="1,1,4"]
|===
| Property| Default| Description
| Property| Default| Description
| cookieName
| classname + LOCALE
@ -954,7 +953,7 @@ alter the request's theme. The following theme resolvers are provided by Spring:
@@ -954,7 +953,7 @@ alter the request's theme. The following theme resolvers are provided by Spring:
.ThemeResolver implementations
[cols="1,4"]
|===
| Class| Description
| Class| Description
| `FixedThemeResolver`
| Selects a fixed theme, set using the `defaultThemeName` property.
@ -1550,126 +1549,125 @@ etc, and is equivalent to `required=false`.
@@ -1550,126 +1549,125 @@ etc, and is equivalent to `required=false`.
[cols="1,2", options="header"]
|===
|Controller method argument|Description
|Controller method argument|Description
|`WebRequest`, `NativeWebRequest`
|Generic access to request parameters, request & session attributes, without direct
use of the Servlet API.
|`WebRequest`, `NativeWebRequest`
|Generic access to request parameters, request & session attributes, without direct
@ -1682,96 +1680,96 @@ supported for all return values, see below for more details.
@@ -1682,96 +1680,96 @@ supported for all return values, see below for more details.
[cols="1,2", options="header"]
|===
|Controller method return value|Description
|`@ResponseBody`
|The return value is converted through ``HttpMessageConverter``s and written to the
response. See <<mvc-ann-responsebody>>.
|`HttpEntity<B>`, `ResponseEntity<B>`
|The return value specifies the full response including HTTP headers and body be converted
through ``HttpMessageConverter``s and written to the response.
See <<mvc-ann-responseentity>>.
|`HttpHeaders`
|For returning a response with headers and no body.
|`String`
|A view name to be resolved with ``ViewResolver``'s and used together with the implicit
model -- determined through command objects and `@ModelAttribute` methods. The handler
method may also programmatically enrich the model by declaring a `Model` argument (see
above).
|`View`
|A `View` instance to use for rendering together with the implicit model -- determined
through command objects and `@ModelAttribute` methods. The handler method may also
programmatically enrich the model by declaring a `Model` argument (see above).
|`java.util.Map`, `org.springframework.ui.Model`
|Attributes to be added to the implicit model with the view name implicitly determined
through a `RequestToViewNameTranslator`.
|`@ModelAttribute`
|An attribute to be added to the model with the view name implicitly determined through
a `RequestToViewNameTranslator`.
Note that `@ModelAttribute` is optional. See "Any other return value" further below in
this table.
|`ModelAndView` object
|The view and model attributes to use, and optionally a response status.
|`void`
|A method with a `void` return type (or `null` return value) is considered to have fully
handled the response if it also has a `ServletResponse`, or an `OutputStream` argument, or an
`@ResponseStatus` annotation. The same is true also if the controller has made a positive
ETag or lastModified timestamp check (see <<mvc-caching-etag-lastmodified>> for details).
If none of the above is true, a `void` return type may also indicate "no response body" for
REST controllers, or default view name selection for HTML controllers.
|`DeferredResult<V>`
|Produce any of the above return values asynchronously from any thread -- e.g. possibly as a
result of some event or callback. See <<mvc-ann-async>> and
<<mvc-ann-async-deferredresult>>.
|`Callable<V>`
|Produce any of the above return values asynchronously in a Spring MVC managed thread.
See <<mvc-ann-async>> and <<mvc-ann-async-callable>>.
|`ListenableFuture<V>`,
`java.util.concurrent.CompletionStage<V>`,
`java.util.concurrent.CompletableFuture<V>`
|Alternative to `DeferredResult` as a convenience for example when an underlying service
returns one of those.
|`ResponseBodyEmitter`, `SseEmitter`
|Emit a stream of objects asynchronously to be written to the response with
``HttpMessageConverter``'s; also supported as the body of a `ResponseEntity`.
See <<mvc-ann-async>> and <<mvc-ann-async-http-streaming>>.
|`StreamingResponseBody`
|Write to the response `OutputStream` asynchronously; also supported as the body of a
`ResponseEntity`. See <<mvc-ann-async>> and <<mvc-ann-async-http-streaming>>.
|Reactive types -- Reactor, RxJava, or others via `ReactiveAdapterRegistry`
|Alternative to ``DeferredResult` with multi-value streams (e.g. `Flux`, `Observable`)
collected to a `List`.
For streaming scenarios -- .e.g. `text/event-stream`, `application/json+stream`,
`SseEmitter` and `ResponseBodyEmitter` are used instead, where `ServletOutputStream` blocking
I/O is performed on a Spring MVC managed thread and back pressure applied against the
completion of each write.
See <<mvc-ann-async>> and <<mvc-ann-async-reactive-types>>.
|Any other return value
|If a return value is not matched to any of the above, by default it is treated as a view
name, if it is `String` or `void` (default view name selection via
`RequestToViewNameTranslator` applies); or as a model attribute to be added to the model,