package com.example.zcw.runner;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.CommandLineRunner;import org.springframework.core.annotation.Order;import org.springframework.stereotype.Compon<p>本文来源gao!daima.com搞$代!码#网#</p>ent;/** * @Classname BootCommandLineRunner * @Description TODO * @Date 2020/3/6 13:09 * @Created by zhaocunwei */@Order(1)@Slf4j@Componentpublic class BootCommandLineRunner implements CommandLineRunner { @Override public void run(String... args) throws Exception { log.info("This is BootCommandLineRunner ..."); }}
spring @Order标记
- @Order标记定义了组件的加载顺序
@Order标记从spring 2.0出现,但是在spring 4.0之前,@Order标记只支持AspectJ的切面排序。spring 4.0对@Order做了增强,它开始支持对装载在诸如Lists和Arrays容器中的自动包装(auto-wired)组件的排序。
在spring内部,对基于spring xml的应用,spring使用OrderComparator类来实现排序。对基于注解的应用,spring采用AnnotationAwareOrderComparator来实现排序。
@Order 标记定义如下:
@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documentedpublic @interface Order
这个标记包含一个value属性。属性接受整形值。如:1,2 等等。值越小拥有越高的优先级。
下面让我们来看一个
使用spring 3.x 和spring 4.x 的例子
@Order标记从spring 2.0出现,但是在spring 4.0之前,@Order标记只支持AspectJ的切面排序。spring 4.0对@Order做了增强,它开始支持对装载在诸如Lists和Arrays容器中的自动包装(auto-wired)组件的排序。
在spring内部,对基于spring xml的应用,spring使用OrderComparator类来实现排序。对基于注解的应用,spring采用AnnotationAwareOrderComparator来实现排序。
@Order 标记定义如下:
@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documentedpublic @interface Order
这个标记包含一个value属性。属性接受整形值。如:1,2 等等。值越小拥有越高的优先级。
下面让我们来看一个