public interface PriorityOrdered extends Ordered
Ordered
interface, expressing a priority
ordering: PriorityOrdered
objects are always applied before
plain Ordered
objects regardless of their order values.
When sorting a set of Ordered
objects, PriorityOrdered
objects and plain Ordered
objects are effectively treated as
two separate subsets, with the set of PriorityOrdered
objects preceding
the set of plain Ordered
objects and with relative
ordering applied within those subsets.
This is primarily a special-purpose interface, used within the framework
itself for objects where it is particularly important to recognize
prioritized objects first, potentially without even obtaining the
remaining objects. A typical example: prioritized post-processors in a Spring
ApplicationContext
.
Note: PriorityOrdered
post-processor beans are initialized in
a special phase, ahead of other post-processor beans. This subtly
affects their autowiring behavior: they will only be autowired against
beans which do not require eager initialization for type matching.
PropertyOverrideConfigurer
,
PropertyPlaceholderConfigurer
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE