Polishing
This commit is contained in:
parent
6890e65d2c
commit
50bed38a85
|
|
@ -24,7 +24,7 @@ import org.springframework.validation.BindingResult;
|
|||
/**
|
||||
* Subclass of {@link org.springframework.ui.ExtendedModelMap} that automatically removes
|
||||
* a {@link org.springframework.validation.BindingResult} object if the corresponding
|
||||
* target attribute gets replaced through regulat {@link Map} operations.
|
||||
* target attribute gets replaced through regular {@link Map} operations.
|
||||
*
|
||||
* <p>This is the class exposed to handler methods by Spring MVC, typically consumed through
|
||||
* a declaration of the {@link org.springframework.ui.Model} interface. There is no need to
|
||||
|
|
|
|||
|
|
@ -4281,16 +4281,16 @@ any). These types must be 'wired up' explicitly via XML or using a Spring `@Bean
|
|||
|
||||
|
||||
[[beans-autowired-annotation-primary]]
|
||||
=== Fine-tuning annotation-based autowiring with primary
|
||||
Because autowiring by type may lead to multiple candidates, it is often necessary to
|
||||
have more control over the selection process. One way to accomplish this is with
|
||||
Spring's `@Primary` annotation. `@Primary` indicates that a bean should be given
|
||||
preference when multiple candidates are qualified to autowire a single-valued dependency.
|
||||
If exactly one 'primary' bean exists among the candidates, it will be the autowired
|
||||
value.
|
||||
=== Fine-tuning annotation-based autowiring with @Primary
|
||||
Because autowiring by type may lead to multiple candidates, it is often necessary to have
|
||||
more control over the selection process. One way to accomplish this is with Spring's
|
||||
`@Primary` annotation. `@Primary` indicates that a particular bean should be given
|
||||
preference when multiple beans are candidates to be autowired to a single-valued
|
||||
dependency. If exactly one 'primary' bean exists among the candidates, it will be the
|
||||
autowired value.
|
||||
|
||||
Let's assume the following configuration that define `firstMovieCatalog` as the _primary_
|
||||
`MovieCatalog`
|
||||
Let's assume we have the following configuration that defines `firstMovieCatalog` as the
|
||||
_primary_ `MovieCatalog`.
|
||||
|
||||
[source,java,indent=0]
|
||||
[subs="verbatim,quotes"]
|
||||
|
|
@ -4310,7 +4310,8 @@ Let's assume the following configuration that define `firstMovieCatalog` as the
|
|||
}
|
||||
----
|
||||
|
||||
With such configuration, `MovieRecommender` will use `firstMovieCatalog`
|
||||
With such configuration, the following `MovieRecommender` will be autowired with the
|
||||
`firstMovieCatalog`.
|
||||
|
||||
[source,java,indent=0]
|
||||
[subs="verbatim,quotes"]
|
||||
|
|
@ -4444,14 +4445,14 @@ optional semantic qualifiers. This means that qualifier values, even with the be
|
|||
fallback, always have narrowing semantics within the set of type matches; they do not
|
||||
semantically express a reference to a unique bean id. Good qualifier values are "main"
|
||||
or "EMEA" or "persistent", expressing characteristics of a specific component that are
|
||||
independent from the bean id, which may be auto-generated in case of an anonymous bean
|
||||
independent from the bean `id`, which may be auto-generated in case of an anonymous bean
|
||||
definition like the one in the preceding example.
|
||||
|
||||
Qualifiers also apply to typed collections, as discussed above, for example, to
|
||||
`Set<MovieCatalog>`. In this case, all matching beans according to the declared
|
||||
qualifiers are injected as a collection. This implies that qualifiers do not have to be
|
||||
unique; they rather simply constitute filtering criteria. For example, you can define
|
||||
multiple `MovieCatalog` beans with the same qualifier value "action"; all of which would
|
||||
multiple `MovieCatalog` beans with the same qualifier value "action", all of which would
|
||||
be injected into a `Set<MovieCatalog>` annotated with `@Qualifier("action")`.
|
||||
|
||||
[TIP]
|
||||
|
|
|
|||
|
|
@ -4591,10 +4591,10 @@ available.
|
|||
[[mvc-config-conversion]]
|
||||
=== Conversion and Formatting
|
||||
|
||||
By default formatters for Numbers and Date types are installed, including support for the @NumberFormat
|
||||
and @DateTimeFormat annotations. Full support for the Joda Time formatting library is also installed
|
||||
if Joda Time is present on the classpath. To register custom formatters and converters override
|
||||
the `addFormatters` method:
|
||||
By default formatters for `Number` and `Date` types are installed, including support for
|
||||
the `@NumberFormat` and `@DateTimeFormat` annotations. Full support for the Joda Time
|
||||
formatting library is also installed if Joda Time is present on the classpath. To
|
||||
register custom formatters and converters, override the `addFormatters` method:
|
||||
|
||||
[source,java,indent=0]
|
||||
[subs="verbatim,quotes"]
|
||||
|
|
|
|||
Loading…
Reference in New Issue