在网上查询 Bean 的加载顺序时,看到了大量的文章中使用@Order注解的方式来控制 bean 的加载顺序,不知道写这些的博文的同学自己有没有实际的验证过,本文希望通过指出这些错误的使用姿势,让观文的小伙伴可以知道@Order的具体的应用场景

原文地址: SpringBoot系列教程之Bean加载顺序之错误使用姿势辟谣

I. 环境搭建

创建一个 maven 项目,pom 文件如下(具体的项目代码,可以在文末获取)

<parent>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-parent</artifactId>     <version>2.1.7</version>     <relativePath/> <!-- lookup parent from update --> </parent>  <properties>     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>     <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>     <java.version>1.8</java.version> </properties>  <dependencies>     <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-web</artifactId>     </dependency> </dependencies>  <build>     <pluginManagement>         <plugins>             <plugin>                 <groupId>org.springframework.boot</groupId>                 <artifactId>spring-boot-maven-plugin</artifactId>             </plugin>         </plugins>     </pluginManagement> </build> <repositories>     <repository>         <id>spring-milestones</id>         <name>Spring Milestones</name>         <url>https://repo.spring.io/milestone</url>         <snapshots>             <enabled>false</enabled>         </snapshots>     </repository> </repositories>

II. 错误姿势

下面我们会介绍两种典型注解的错误使用姿势,一个