@ -2209,13 +2209,13 @@ developer's intent (__'inject this constant value'__), and it just reads better.
@@ -2209,13 +2209,13 @@ developer's intent (__'inject this constant value'__), and it just reads better.
[[xsd-config-body-schemas-util-frfb]]
====== Setting a bean property or constructor arg from a field value
@ -17,10 +17,10 @@ construction of classes, or a mechanism such as the __Service Locator__ pattern.
@@ -17,10 +17,10 @@ construction of classes, or a mechanism such as the __Service Locator__ pattern.
The `org.springframework.beans` and `org.springframework.context` packages are the basis
or {api-spring-framework}/context/support/FileSystemXmlApplicationContext.html[`FileSystemXmlApplicationContext`].
While XML has been the traditional format for defining configuration metadata you can
instruct the container to use Java annotations or code as the metadata format by
providing a small amount of XML configuration to declaratively enable support for these
@ -2298,7 +2298,7 @@ The following scopes are supported out of the box. You can also create
@@ -2298,7 +2298,7 @@ The following scopes are supported out of the box. You can also create
====
As of Spring 3.0, a __thread scope__ is available, but is not registered by default. For
For instructions on how to register this or any other custom scope, see
<<beans-factory-scopes-custom-using>>.
====
@ -2712,7 +2712,7 @@ To integrate your custom scope(s) into the Spring container, you need to impleme
@@ -2712,7 +2712,7 @@ To integrate your custom scope(s) into the Spring container, you need to impleme
`org.springframework.beans.factory.config.Scope` interface, which is described in this
section. For an idea of how to implement your own scopes, see the `Scope`
implementations that are supplied with the Spring Framework itself and the
which explains the methods you need to implement in more detail.
The `Scope` interface has four methods to get objects from the scope, remove them from
@ -4091,11 +4091,11 @@ configuration (notice the inclusion of the `context` namespace):
@@ -4091,11 +4091,11 @@ configuration (notice the inclusion of the `context` namespace):
----
(The implicitly registered post-processors include
@ -4836,7 +4836,7 @@ Generic qualifiers also apply when autowiring Lists, Maps and Arrays:
@@ -4836,7 +4836,7 @@ Generic qualifiers also apply when autowiring Lists, Maps and Arrays:
explicitly. However, it is recommended that you rely on the default behavior and simply
use Spring's JNDI lookup capabilities to preserve the level of indirection.
====
@ -5464,7 +5464,7 @@ were detected, the names would be myMovieLister and movieFinderImpl:
@@ -5464,7 +5464,7 @@ were detected, the names would be myMovieLister and movieFinderImpl:
====
If you do not want to rely on the default bean-naming strategy, you can provide a custom
interface, and be sure to include a default no-arg constructor. Then, provide the
fully-qualified class name when configuring the scanner:
====
@ -6373,7 +6373,7 @@ Sometimes it is helpful to provide a more detailed textual description of a bean
@@ -6373,7 +6373,7 @@ Sometimes it is helpful to provide a more detailed textual description of a bean
be particularly useful when beans are exposed (perhaps via JMX) for monitoring purposes.
@ -6837,7 +6837,7 @@ profile has been enabled in the Spring `Environment` (see <<beans-definition-pro
@@ -6837,7 +6837,7 @@ profile has been enabled in the Spring `Environment` (see <<beans-definition-pro
for details).
The `@Profile` annotation is actually implemented using a much more flexible annotation
called {javadoc-baseurl}/org/springframework/context/annotation/Conditional.html[`@Conditional`].
called {api-spring-framework}/context/annotation/Conditional.html[`@Conditional`].
The `@Conditional` annotation indicates specific
`org.springframework.context.annotation.Condition` implementations that should be
consulted before a `@Bean` is registered.
@ -6867,7 +6867,7 @@ method that returns `true` or `false`. For example, here is the actual
@@ -6867,7 +6867,7 @@ method that returns `true` or `false`. For example, here is the actual
}
----
See the {javadoc-baseurl}/org/springframework/context/annotation/Conditional.html[
See the {api-spring-framework}/context/annotation/Conditional.html[
is configured with two PropertySource objects -- one representing the set of JVM system properties
(_a la_ `System.getProperties()`) and one representing the set of system environment variables
(_a la_ `System.getenv()`).
@ -7407,11 +7407,11 @@ is configured with two PropertySource objects -- one representing the set of JVM
@@ -7407,11 +7407,11 @@ is configured with two PropertySource objects -- one representing the set of JVM
[NOTE]
====
These default property sources are present for `StandardEnvironment`, for use in standalone
interface, which extends the `BeanFactory` interface, in addition to extending other
interfaces to provide additional functionality in a more __application
framework-oriented style__. Many people use the `ApplicationContext` in a completely
@ -8249,7 +8249,7 @@ and JMX support facilities. Application components can also interact with the
@@ -8249,7 +8249,7 @@ and JMX support facilities. Application components can also interact with the
application server's JCA WorkManager through Spring's `TaskExecutor` abstraction.
class for the configuration details involved in RAR deployment.
__For a simple deployment of a Spring ApplicationContext as a Java EE RAR file:__ package
@ -8402,7 +8402,7 @@ option for accessing shared Spring-managed components, such as in an EJB 2.1
@@ -8402,7 +8402,7 @@ option for accessing shared Spring-managed components, such as in an EJB 2.1
environment, or when you want to share a single ApplicationContext as a parent to
WebApplicationContexts across WAR files. In this case you should look into using the
@ -191,9 +191,9 @@ convenience to aid developers in targeting error messages and suchlike.
@@ -191,9 +191,9 @@ convenience to aid developers in targeting error messages and suchlike.
More information on the `MessageCodesResolver` and the default strategy can be found
@ -7179,7 +7179,7 @@ unmarshal XML from an external source, set the `supportedClasses` property on th
@@ -7179,7 +7179,7 @@ unmarshal XML from an external source, set the `supportedClasses` property on th
This will make sure that only the registered classes are eligible for unmarshalling.
Rod Johnson; Juergen Hoeller; Keith Donald; Colin Sampaleanu; Rob Harrop; Thomas Risberg; Alef Arendsen; Darren Davison; Dmitriy Kopylenko; Mark Pollack; Thierry Templier; Erwin Vervaet; Portia Tung; Ben Hale; Adrian Colyer; John Lewis; Costin Leau; Mark Fisher; Sam Brannen; Ramnivas Laddad; Arjen Poutsma; Chris Beams; Tareq Abedrabbo; Andy Clement; Dave Syer; Oliver Gierke; Rossen Stoyanchev; Phillip Webb; Rob Winch; Brian Clozel; Stephane Nicoll; Sebastien Deleuze
@ -879,8 +879,8 @@ proxy will take care of forwarding the call to the server-side object via JMS.
@@ -879,8 +879,8 @@ proxy will take care of forwarding the call to the server-side object via JMS.
[[remoting-amqp]]
=== AMQP
Refer to the http://docs.spring.io/spring-amqp/reference/html/amqp.html#remoting[Spring
AMQP Reference Document 'Spring Remoting with AMQP' section] for more information.
Refer to the {doc-spring-amqp}/html/_reference.html#remoting[Spring AMQP Reference Document
'Spring Remoting with AMQP' section] for more information.
@ -1004,33 +1004,33 @@ RestTemplate has an asynchronous counter-part: see <<rest-async-resttemplate>>.
@@ -1004,33 +1004,33 @@ RestTemplate has an asynchronous counter-part: see <<rest-async-resttemplate>>.
The names of `RestTemplate` methods follow a naming convention, the first part indicates
@ -1374,7 +1374,7 @@ needs: multiple threads may be blocked, waiting for remote HTTP responses.
@@ -1374,7 +1374,7 @@ needs: multiple threads may be blocked, waiting for remote HTTP responses.
`AsyncRestTemplate` and <<rest-resttemplate>>'s APIs are very similar; see
<<rest-overview-of-resttemplate-methods-tbl>>. The main difference between those APIs is
@ -7047,7 +7047,7 @@ seconds and one every morning at 6 AM. To finalize everything, we need to set up
@@ -7047,7 +7047,7 @@ seconds and one every morning at 6 AM. To finalize everything, we need to set up
More properties are available for the `SchedulerFactoryBean` for you to set, such as the
calendars used by the job details, properties to customize Quartz with, etc. Have a look
@ -8643,7 +8643,7 @@ application through AOP. The configuration is intentionally similar with that of
@@ -8643,7 +8643,7 @@ application through AOP. The configuration is intentionally similar with that of
[NOTE]
====
Advanced customizations using Java config require to implement `CachingConfigurer`, refer
to {javadoc-baseurl}/org/springframework/cache/annotation/CachingConfigurer.html[the
to {api-spring-framework}/cache/annotation/CachingConfigurer.html[the
javadoc for more details].
====
@ -9096,8 +9096,7 @@ GemFire is a memory-oriented/disk-backed, elastically scalable, continuously ava
@@ -9096,8 +9096,7 @@ GemFire is a memory-oriented/disk-backed, elastically scalable, continuously ava
active (with built-in pattern-based subscription notifications), globally replicated
database and provides fully-featured edge caching. For further information on how to use
GemFire as a CacheManager (and more), please refer to the
http://docs.spring.io/spring-gemfire/docs/current/reference/htmlsingle/[Spring Data GemFire
reference documentation].
{doc-spring-gemfire}/html/[Spring Data GemFire reference documentation].
@ -3760,7 +3760,7 @@ instrumenting your test class with a `TestContextManager`. See the source code o
@@ -3760,7 +3760,7 @@ instrumenting your test class with a `TestContextManager`. See the source code o
The __Spring MVC Test framework__ provides first class support for testing Spring MVC
code using a fluent API that can be used with JUnit, TestNG, or any other testing
framework. It's built on the
http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/mock/web/package-summary.html[Servlet API mock objects]
{api-spring-framework}/mock/web/package-summary.html[Servlet API mock objects]
from the `spring-test` module and hence does _not_ use a running Servlet container. It
uses the `DispatcherServlet` to provide full Spring MVC runtime behavior and provides support
for loading actual Spring configuration with the __TestContext framework__ in addition to a
@ -3774,7 +3774,7 @@ use a running server.
@@ -3774,7 +3774,7 @@ use a running server.
====
Spring Boot provides an option to write full, end-to-end integration tests that include
a running server. If this is your goal please have a look at the
For more information on the differences between out-of-container and end-to-end
integration tests, see <<spring-mvc-test-vs-end-to-end-integration-tests>>.
====
@ -4181,7 +4181,7 @@ body as expected. The same is true for rendering JSON, XML, and other formats vi
@@ -4181,7 +4181,7 @@ body as expected. The same is true for rendering JSON, XML, and other formats vi
Alternatively you may consider the full end-to-end integration testing support from
@ -19,7 +19,7 @@ As of Spring Framework 4.2, CORS is supported out of the box. CORS requests
@@ -19,7 +19,7 @@ As of Spring Framework 4.2, CORS is supported out of the box. CORS requests
(https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/java/org/springframework/web/servlet/FrameworkServlet.java#L906[including preflight ones with an `OPTIONS` method])
are automatically dispatched to the various registered ++HandlerMapping++s. They handle
CORS preflight requests and intercept CORS simple and actual requests thanks to a
by default) in order to add the relevant CORS response headers (like `Access-Control-Allow-Origin`)
based on the CORS configuration you have provided.
@ -34,7 +34,7 @@ Since CORS requests are automatically dispatched, you *do not need* to change th
@@ -34,7 +34,7 @@ Since CORS requests are automatically dispatched, you *do not need* to change th
annotation to your `@RequestMapping` annotated handler method in order to enable CORS on
it. By default `@CrossOrigin` allows all origins and the HTTP methods specified in the
`@RequestMapping` annotation:
@ -191,16 +191,16 @@ It is also possible to declare several CORS mappings with customized properties:
@@ -191,16 +191,16 @@ It is also possible to declare several CORS mappings with customized properties:
allows to specify a `Map` with several http://docs.spring.io/spring/docs/4.2.x/javadoc-api/org/springframework/web/cors/CorsConfiguration.html[CorsConfiguration]
* Handlers can implement the http://docs.spring.io/spring/docs/4.2.x/javadoc-api/org/springframework/web/cors/CorsConfigurationSource.html[`CorsConfigurationSource`]
* Handlers can implement the {api-spring-framework}/web/cors/CorsConfigurationSource.html[`CorsConfigurationSource`]
now does) in order to provide a http://docs.spring.io/spring/docs/4.2.x/javadoc-api/org/springframework/web/cors/CorsConfiguration.html[CorsConfiguration]
now does) in order to provide a {api-spring-framework}/web/cors/CorsConfiguration.html[CorsConfiguration]
@ -83,7 +83,7 @@ context'). This section details how one configures a Spring container (a
@@ -83,7 +83,7 @@ context'). This section details how one configures a Spring container (a
`WebApplicationContext`) that contains all of the 'business beans' in one's application.
On to specifics: all that one need do is to declare a
@ -1425,7 +1425,7 @@ JSON, XML or custom MediaType content. For convenience, instead of annotating al
@@ -1425,7 +1425,7 @@ JSON, XML or custom MediaType content. For convenience, instead of annotating al
`@RequestMapping` methods with `@ResponseBody`, you can annotate your Controller Class
Note that using Spring Security to secure the application is not necessarily required for all features.
For example CSRF protection can be added simply by adding the `CsrfFilter` and
`CsrfRequestDataValueProcessor` to your configuration. See the
@ -4161,7 +4161,7 @@ Spring Web MVC uses a configuration convention in several of its APIs:
@@ -4161,7 +4161,7 @@ Spring Web MVC uses a configuration convention in several of its APIs:
* An `n > 0` value will cache the given response for `n` seconds using the
`'Cache-Control: max-age=n'` directive.
The {javadoc-baseurl}/org/springframework/http/CacheControl.html[`CacheControl`] builder
The {api-spring-framework}/http/CacheControl.html[`CacheControl`] builder
class simply describes the available "Cache-Control" directives and makes it easier to
build your own HTTP caching strategy. Once built, a `CacheControl` instance can then be
accepted as an argument in several Spring Web MVC APIs.
in order to provide a better default configuration.
This builder customizes Jackson's default properties with the following ones:
@ -4834,7 +4834,7 @@ corresponding dependencies such as Jackson, JAXB2, or Rome are present on the cl
@@ -4834,7 +4834,7 @@ corresponding dependencies such as Jackson, JAXB2, or Rome are present on the cl
Additional extensions may be not need to be registered explicitly if they can be
discovered via `ServletContext.getMimeType(String)` or the __Java Activation Framework__
(see `javax.activation.MimetypesFileTypeMap`). You can register more extensions with the
@ -5325,9 +5325,9 @@ And the same in XML, use the `<mvc:path-matching>` element:
@@ -5325,9 +5325,9 @@ And the same in XML, use the `<mvc:path-matching>` element:
=== Message Converters
Customization of `HttpMessageConverter` can be achieved in Java config by overriding
@ -266,7 +266,7 @@ The above is for use in Spring MVC applications and should be included in the
@@ -266,7 +266,7 @@ The above is for use in Spring MVC applications and should be included in the
configuration of a <<mvc-servlet,DispatcherServlet>>. However, Spring's WebSocket
support does not depend on Spring MVC. It is relatively simple to integrate a `WebSocketHandler`
into other HTTP serving environments with the help of
@ -734,7 +734,7 @@ The above is for use in Spring MVC applications and should be included in the
@@ -734,7 +734,7 @@ The above is for use in Spring MVC applications and should be included in the
configuration of a <<mvc-servlet,DispatcherServlet>>. However, Spring's WebSocket
and SockJS support does not depend on Spring MVC. It is relatively simple to
integrate into other HTTP serving environments with the help of
https://github.com/sockjs/sockjs-client/[sockjs-client] (version 1.0.x) that
@ -782,7 +782,7 @@ response. By default the Spring Security Java config sets it to `DENY`.
@@ -782,7 +782,7 @@ response. By default the Spring Security Java config sets it to `DENY`.
In 3.2 the Spring Security XML namespace does not set that header by default
but may be configured to do so, and in the future it may set it by default.
See http://docs.spring.io/spring-security/site/docs/3.2.2.RELEASE/reference/htmlsingle/#headers[Section 7.1. "Default Security Headers"]
See {doc-spring-security}/htmlsingle/#headers[Section 7.1. "Default Security Headers"]
of the Spring Security documentation for details on how to configure the
setting of the `X-Frame-Options` header. You may also check or watch
https://jira.spring.io/browse/SEC-2501[SEC-2501] for additional background.
@ -1217,15 +1217,15 @@ It contains a number of abstractions that originated in the
@@ -1217,15 +1217,15 @@ It contains a number of abstractions that originated in the
https://spring.io/spring-integration[Spring Integration] project and are intended
for use as building blocks in messaging applications:
@ -14,8 +14,8 @@ support Java 8 features. You can still use Spring with older versions of Java, h
@@ -14,8 +14,8 @@ support Java 8 features. You can still use Spring with older versions of Java, h
the minimum requirement has now been raised to Java SE 6. We have also taken the
opportunity of a major release to remove many deprecated classes and methods.
A https://github.com/spring-projects/spring-framework/wiki/Migrating-from-earlier-versions-of-the-spring-framework[migration guide for upgrading to Spring 4.0]
is available on the https://github.com/spring-projects/spring-framework/wiki[Spring Framework GitHub Wiki].
A {wiki-spring-framework}/Migrating-from-earlier-versions-of-the-spring-framework[migration guide for upgrading to Spring 4.0]
is available on the {wiki-spring-framework}[Spring Framework GitHub Wiki].
@ -127,7 +127,7 @@ directly in your bootstrap code. For example:
@@ -127,7 +127,7 @@ directly in your bootstrap code. For example:
----
For more information consult the `GroovyBeanDefinitionReader`
@ -232,13 +232,13 @@ Framework 4.0 introduces several new features for use in unit and integration te
@@ -232,13 +232,13 @@ Framework 4.0 introduces several new features for use in unit and integration te
=== JMS Improvements
Spring 4.1 introduces a much simpler infrastructure <<jms-annotated,to register JMS
listener endpoints>> by annotating bean methods with