在这篇文章中,我们将讨论**@Order 注释**。我们正在介绍此注释的各种功能。
@Order 注释 定义注释组件的排序顺序。此注解可从 Spring 2.0 开始使用。此注释有一个可选的 value 参数,它表示 [Ordered](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/Ordered.html)
接口中定义的订单值。默认值为 Ordered.LOWEST_PRECEDENCE
,显示最低优先级,类似地,值 Ordered.HIGHEST_PRECEDENCE
用于覆盖最高优先级。
在 Spring 4 之前,@Order
注解仅用于对 AspectJ 方面进行排序。在 Spring 4 之后,Spring @Order 注释 支持在列表和数组等集合中对自动连接的组件进行排序。
为了理解这个注解,让我们构建下面的例子。
*我们想为潜在客户推荐一辆车。
让我们创建我们的 Car 界面。
public interface Car {
/**
* This method is responsible for recommending car to customer based on our algorithm
* @return Recommended car
*/
String getCarRecommendation();
}
让我们创建三个不同的汽车实例,并根据我们的算法设置顺序。
@Component
@Order(1)
public class Toyota implements Car {
@Override
public String getCarRecommendation() {
return "Toyota";
}
}
@Component
@Order(2)
public class Honda implements Car {
@Override
public String getCarRecommendation() {
return "Honda";
}
}
@Component
@Order(Ordered.LOWEST_PRECEDENCE)
public class UsedCar implements Car {
@Override
public String getCarRecommendation() {
return "Certified Car";
}
}
在“二手车”部分,我们添加了最低优先级。
让我们测试一下我们的应用程序,看看这个注解是如何工作的。
@RunWith(SpringRunner.class)
@SpringBootTest
public class OrderAnnotationTest {
@Autowired
private List < Car > cars;
@Test
public void test_spring_order_annotation() {
assertThat(cars.get(0).getCarRecommendation(), is(equalTo("Toyota")));
assertThat(cars.get(1).getCarRecommendation(), is(equalTo("Honda")));
assertThat(cars.get(2).getCarRecommendation(), is(equalTo("Certified Car")));
}
}
###4. 结论
在本文中,我们讨论了 Spring @Order 注释。我们了解了何时使用此注解以及如何自定义其行为。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.dailycodebuffer.com/order-annotation-in-spring/
内容来源于网络,如有侵权,请联系作者删除!