-
2019-03-06 14:43:08
@Order标记定义了组件的加载顺序,值越小拥有越高的优先级,可为负数。
例如:
@Order(-1)优先于@Order(0)
@Order(1)优先于@Order(2)更多相关内容 -
@Order注解
2020-09-21 14:38:50@Order的作用是定义Spring IOC容器中Bean的执行顺序的优先级, 而不是定义Bean的加载顺序, Bean的加载顺序不受@Order或Ordered接口的影响; 1.@Order的注解源码解读 @Retention(RetentionPolicy.RUNTIME) @...@Order的作用是定义Spring IOC容器中Bean的执行顺序的优先级,
而不是定义Bean的加载顺序,
Bean的加载顺序不受@Order或Ordered接口的影响;
1.@Order的注解源码解读
@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD}) @Documented public @interface Order { /** * 默认是最低优先级,值越小优先级越高 */ int value() default Ordered.LOWEST_PRECEDENCE; }
- 注解可以作用在类(接口、枚举)、方法、字段声明(包括枚举常量);
- 注解有一个int类型的参数,可以不传,默认是最低优先级;
- 通过常量类的值我们可以推测参数值越小优先级越高;
转载于:https://blog.csdn.net/yaomingyang/article/details/86649072
-
浅谈Spring @Order注解的使用
2021-12-20 19:59:26注解@Order的作用是定义Spring容器加载Bean的顺序,接下来我们通过分析源码和示例测试详细的学习。 1.@Order的注解源码解读 注解类: @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType....注解@Order的作用是定义Spring容器加载Bean的顺序,接下来我们通过分析源码和示例测试详细的学习。
1.@Order的注解源码解读
注解类:@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD}) @Documented public @interface Order { /** * 默认是最低优先级 */ int value() default Ordered.LOWEST_PRECEDENCE; }
常量类
public interface Ordered { /** * 最高优先级的常量值 * @see java.lang.Integer#MIN_VALUE */ int HIGHEST_PRECEDENCE = Integer.MIN_VALUE; /** * 最低优先级的常量值 * @see java.lang.Integer#MAX_VALUE */ int LOWEST_PRECEDENCE = Integer.MAX_VALUE; int getOrder(); }
- 注解可以作用在类、方法、字段声明(包括枚举常量);
- 注解有一个int类型的参数,可以不传,默认是最低优先级;
- 通过常量类的值我们可以推测参数值越小优先级越高;
2.创建三个POJO类Cat、Cat2、Cat3,使用@Component注解将其交给Spring容器自动加载,每个类分别加上@Order(1)、@Order(2)、@Order(3)注解,下面只列出Cat的代码其它的类似
package com.eureka.client.co; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; @Component @Order(1) public class Cat { private String catName; private int age; public Cat() { System.out.println("Order:1"); } public String getCatName() { return catName; } public void setCatName(String catName) { this.catName = catName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
3.启动应用程序主类
package com.eureka.client; import java.util.Map; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.eureka.client.co.Person; @SpringBootApplication public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
输出结果是:
Order:1 Order:2 Order:3
总结:@Order(1)、@Order(2)、@Order(3)
设置bean的加载顺序,参数值越小,优先级越高。 -
@Order 注解
2020-01-06 16:44:07@Order注解主要用来控制配置类的加载顺序 示例代码: package com.runlion.tms.admin.constant; public class AService { } package com.runlion.tms.admin.constant; public class BService { } package ...@Order 注解
@Order注解主要用来控制配置类的加载顺序
示例代码:package com.runlion.tms.admin.constant; public class AService { } package com.runlion.tms.admin.constant; public class BService { }
package com.runlion.tms.admin.constant; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; @Configuration @Order(2) public class AConfig { @Bean public AService AService() { System.out.println("AService 加载了"); return new AService(); } } package com.runlion.tms.admin.constant; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; @Configuration @Order(1) public class BConfig { @Bean public BService bService() { System.out.println("BService 加载了"); return new BService(); } }
测试类:
package com.runlion.tms.admin.constant; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class OrderMain { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext("com.runlion.tms.admin.constant"); } }
输出结果:
BService 加载了
AService 加载了因为BService 的@Order(1),所以先打印出来
-
Springboot @Order注解正确用法
2022-01-25 11:21:25@Order注解不能指定 bean 的加载顺序,它适用于 AOP 的优先级,以及将多个 Bean 注入到集合时,这些 bean 在集合中的顺序 Order注解控制Component加载顺序 注意:组件类必须实现接口 package ... -
@Order注解在实体类属性上的作用
2019-10-14 10:17:14在实体类的字段上面加上@Order注解,相当于order by这个字段,由于SQL默认的是升序排列,如果需要升序排列,直接加上@Order注解,如果需要降序排列,还需要配置一下@Order(priority = 1,value = "DESC"),其中... -
常用注解使用总结系列: @Order 注解
2019-10-05 12:07:32@Order 注解@Order注解主要用来控制配置类的加载顺序 :数字越小,越先加载 示例代码: package com.runlion.tms.admin.constant; public class AService { } package com.runlion.tms.admin.constant; public ... -
spring之order注解
2019-11-17 07:30:23我们今天要分享的是spring框架提供的@Order注解的使用,估计这篇文章的阅读时间应该在二到三分钟之间就结束了。好了,其实这个注解还是蛮常用的,可以控制加载的顺序,仅此而已。下面我们... -
深入理解Spring的@Order注解和Ordered接口
2021-03-16 02:21:20前言Spring的@Order注解或者Ordered接口大家都知道是控制顺序的,那么它们到底是控制什么顺序的?是控制Bean的注入顺序,还是Bean的实例化顺序,还是Bean的执行顺序呢?那么我们先直接给出结论再来验证结论。结论:... -
@Order注解使用
2021-02-04 01:43:45注解@Order或者接口Ordered的作用是定义Spring IOC容器中Bean的执行顺序的优先级,而不是定义Bean的加载顺序,Bean的加载顺序不受@Order或Ordered接口的影响 1.@Order的注解源码解读 @Retention(RetentionPolicy.... -
springboot(springcloud)使用@Order注解无效
2021-06-29 10:41:58不采用注解,使用实现接口Ordered的方式。 import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.... -
@Order注解提供消费顺序
2021-01-13 10:46:48Order注解可以做到集合bean依赖注入的时候,定义集合内部Bean的加载顺序,因此在需要有序消费bean的时候,不需要再次排序,直接定义好Order注解得value值就好。 但是这个order值并不影响bean本身实例化的顺序,... -
简单介绍@PostConstruct、@PreDestroy、@DependsOn、@Order等注解的作用及嵌套使用时优先级问题
2021-11-30 15:48:48简单介绍@PostConstruct、@PreDestroy、@DependsOn、@Order等注解的作用及嵌套使用时优先级问题1、@PostConstruct和@PreDestroy注解2、@DependsOn注解3、@Order注解 1、@PostConstruct和@PreDestroy注解 说明:@... -
关于Spring中@Order注解的使用
2020-11-24 14:59:27@关于Spring中@Order注解的使用 先来一段代码: public interface DefaultService { void send(); } @Component @Order(2) public class ServiceA implements DefaultService{ public ServiceA() { System.out.... -
SpringBoot之Order注解启动顺序
2019-02-23 15:17:27order的规则: order的值越小,优先级越高 ... 该注解等同于实现Ordered接口getOrder方法,并返回数字。 @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIEL... -
springboot @Order注解
2018-01-05 19:35:36@Order标记定义了组件的加载顺序。 @Order标记从spring 2.0出现,但是在spring 4.0之前,@Order标记只支持AspectJ的切面排序。spring 4.0对@Order做了增强,它开始支持对装载在诸如Lists和Arrays容器中的自动包装... -
利用@Order注解优先调用自定义过滤器
2020-09-11 18:22:11开发中会遇到需要自定义一个过滤器,并且要在其他过滤器之前执行,那么需要添加@Order(1)注解,就可以解决。 -
切面的优先级(通过@Order注解设置优先级)
2020-03-17 18:13:09决定先执行谁。。。。 基本类型的二进制最大(01111),最小值(1000) -
Spring注解@Order的使用
2020-04-29 11:30:37@Order:注解@Order的作用是定义Spring容器加载Bean的顺序,而不是类的加载顺序 1,注解类源码 @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD}) @... -
RequestMapping注解的作用
2019-08-28 17:16:53RequestMapping注解的作用 源码: @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping public @interface RequestMapping { } 作用: 用于建立请求URL和... -
踩坑:@PostConstruct、@DependsOn、@Order注解嵌套使用解决Bean加载优先级问题
2021-11-25 20:56:14踩坑:@PostConstruct、@DependsOn、@Order注解嵌套使用案例 ...一、@Order注解的作用 @Order注解的作用是定义Spring IOC容器中Bean的执行顺序的优先级。 使用案例: @Component @Order(0) public -
SpringBoot 系列教程(二十三) :使用@Order注解调整配置类加载顺序
2018-12-05 00:12:302、Spring在加载Bean的时候,有用到order注解。 3、通过@Order指定执行顺序,值越小,越先执行 4、@Order注解常用于定义的AOP先于事物执行 5、order如果不标注数字,默认最低优先级,因为其默认值是int最大值... -
使用@Order注解调整配置类加载顺序
2019-08-20 15:36:292、Spring在加载Bean的时候,有用到order注解。 3、通过@Order指定执行顺序,值越小,越先执行 4、@Order注解常用于定义的AOP先于事物执行 2 、新建Springboot项目来测试 (1)、引入依赖 <parent> ... -
Spring入门总结(五)@Order注解
2018-08-06 21:42:58有的时候,我们希望应用Autowired注解的时候数组有序,于是就有了@Order注解 下面看一个案例: 一个接口: package multibean; public interface BeanInterface { } 接口实现类一: package multibean; ... -
Spring笔记-@Order注解和Ordered接口
2019-07-04 10:33:12Order注解用于排序 public @interface Order { /** * The order value. * <p>Default is {@link Ordered#LOWEST_PRECEDENCE}. * @see Ordered#getOrder() */ int value() default Or... -
@Import注解的作用
2021-01-18 14:10:49文章目录 1、三种用法 1.1、.class数组方式 1.2、ImportSelector方式 1.3、ImportBeanDefinitionRegistrar方式 1.4、注意点 @Import注解,顾名思义,导入,即把类加入Spring IOC容器。 有多种方式能让类加IOC容器...