clarified applicability of @Order
This commit is contained in:
parent
5367ec0ff7
commit
96e00d6594
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2007 the original author or authors.
|
||||
* Copyright 2002-2009 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -23,8 +23,8 @@ import org.springframework.core.annotation.Order;
|
|||
import org.springframework.util.ClassUtils;
|
||||
|
||||
/**
|
||||
* AspectInstanceFactory backed by a Spring
|
||||
* {@link org.springframework.beans.factory.BeanFactory}.
|
||||
* {@link org.springframework.aop.aspectj.AspectInstanceFactory} implementation
|
||||
* backed by a Spring {@link org.springframework.beans.factory.BeanFactory}.
|
||||
*
|
||||
* <p>Note that this may instantiate multiple times if using a prototype,
|
||||
* which probably won't give the semantics you expect.
|
||||
|
|
@ -100,12 +100,12 @@ public class BeanFactoryAspectInstanceFactory implements MetadataAwareAspectInst
|
|||
* @see org.springframework.core.annotation.Order
|
||||
*/
|
||||
public int getOrder() {
|
||||
Class type = this.beanFactory.getType(this.name);
|
||||
Class<?> type = this.beanFactory.getType(this.name);
|
||||
if (type != null) {
|
||||
if (Ordered.class.isAssignableFrom(type) && this.beanFactory.isSingleton(this.name)) {
|
||||
return ((Ordered) this.beanFactory.getBean(this.name)).getOrder();
|
||||
}
|
||||
Order order = (Order) type.getAnnotation(Order.class);
|
||||
Order order = type.getAnnotation(Order.class);
|
||||
if (order != null) {
|
||||
return order.value();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2006 the original author or authors.
|
||||
* Copyright 2002-2009 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -24,14 +24,18 @@ import java.lang.annotation.Target;
|
|||
import org.springframework.core.Ordered;
|
||||
|
||||
/**
|
||||
* Annotation to define ordering.
|
||||
* Annotation that defines ordering. The value is optional, and represents order value
|
||||
* as defined in the {@link Ordered} interface. Lower values have higher priority.
|
||||
* The default value is <code>Ordered.LOWEST_PRECEDENCE</code>, indicating
|
||||
* lowest priority (losing to any other specified order value).
|
||||
*
|
||||
* <p><b>NOTE:</b> Annotation-based ordering is supported for specific kinds of
|
||||
* components only, e.g. for annotation-based AspectJ aspects. Spring container
|
||||
* strategies, on the other hand, are typically based on the {@link Ordered}
|
||||
* interface in order to allow for configurable ordering of each <i>instance</i>.
|
||||
*
|
||||
* <p>Value is optional, and represents order value as defined
|
||||
* in the Ordered interface. Lower values have higher priority.
|
||||
* Default value is <code>Integer.MAX_VALUE</code>, indicating lowest
|
||||
* priority (losing to any other specified order value).
|
||||
*
|
||||
* @author Rod Johnson
|
||||
* @author Juergen Hoeller
|
||||
* @since 2.0
|
||||
* @see org.springframework.core.Ordered
|
||||
* @see AnnotationAwareOrderComparator
|
||||
|
|
@ -40,6 +44,10 @@ import org.springframework.core.Ordered;
|
|||
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
|
||||
public @interface Order {
|
||||
|
||||
/**
|
||||
* The order value. Default is {@link Ordered#LOWEST_PRECEDENCE}.
|
||||
* @see Ordered#getOrder()
|
||||
*/
|
||||
int value() default Ordered.LOWEST_PRECEDENCE;
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue