前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

Spring @Order 注解(spring各种注解)

qiguaw 2024-09-21 00:17:21 资源文章 15 ℃ 0 评论

@Order用于为使用此批注注释的组件定义排序顺序。 自2.0版以来,@Order注解在Spring Framework中可用。 直到Spring 4,它仅支持AspectJ方面的订购。 Spring 4对@Order注释做了一点改进。 它引入了对List和Arrays等集合中自动布线组件排序的支持。

在内部,@Order在基于Spring XML的应用程序中使用“OrderComparator”类或在基于Spring Annotation的应用程序中使用“AnnotationAwareOrderComparator”类来对组件进行排序。 在这个Spring教程中,我们将通过Spring项目的示例详细了解@Order注释。

@Order 注解

在Spring Framework中,@Order注释的定义如下所示:

此注释包含一个属性“value”,它接受像1,2等整数值。最低值具有更高的优先级。 这是最低值首先在列表或数组中。

现在让我们来演示这个注释在Spring 3.x和Spring 4.x框架中的工作方式。

示例场景

让我们假设我们要开发一个使用Spring 4框架的应用程序。 这个应用程序的场景之一是一组学生排名说RankOne,RankTwo,RankThree等。我们使用列表或数组来存储使用自动布线结果组件中的这些秩组件。 我们需要观察他们在Spring 3.x和Spring 4.x框架中如何在List或Array中进行排序。

Spring 3.x 示例

我们将使用Spring 3.2框架开发这个应用场景。 使用以下组件在Spring STS Suite中创建Maven项目。 开发一个接口来表示学生排名和RankOne,RankTwo,RankThree等实现。

Ranks.java

RankOne.java

RankTwo.java

RankThree.java

Results.java

如下图所示,用于保存学生排名的组件。

beans.xml

RanksClient.java

pom.xml

最终的项目应该如下所示。

是时候运行这个应用程序并观察结果。

由于我们的客户端有简单的main()方法,只需在Spring STS Suite中将客户端java文件作为“Java应用程序”运行即可。

输出:

[RankOne, RankThree, RankTwo]

在这里,我们的排名组件包含无序格式的排名列表。 由于Spring 3.x不支持@订单注释来订购自动连线列表,因此Ranks组件包含无序列表的列表。 现在让我们来看看Spring 4,看看@Order在这个例子中的不同之处。

Spring 4.x 示例

使用以下组件创建Spring 4 Maven项目。 由于这个项目使用了相同的Spring 3组件,因此我只列出这里的更改

按照原样使用所有Java类,除非进行以下更改。 为RankOne,RankTwo和RankThree的所有Rank实施班级添加@Order注释。

所以唯一的变化是,我们添加了@Order注释,如上所示。 在Maven pom中添加Spring 4作为依赖项。 现在运行该项目,您将得到以下输出。

输出:

[RankOne, RankThree, RankTwo]

因为我们已经为所有Ranks-Implemented类分配了@Order注解,分别为1,2和3; 他们有相同的顺序自动连线。

Spring 4.0 @订单注释优先级

默认情况下@订单注释遵循从低到高的顺序,即最低值具有高优先级。 这意味着它们首先出现在列表或数组中。 因为默认情况下,排序优先级设置为Ordered.LOWEST_PRECEDENCE。 如果您首先需要最高值,那么我们需要将此值更改为Ordered.HIGHEST_PRECEDENCE。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表