admin管理员组

文章数量:1624318

介绍

  • @Priority与@Order类似,@Order是Spring提供的注解,@Priority是JSR 250标准,都是值越小优先级越高;
  • 与@Order不同,@Priority可以控制组件的加载顺序,因此@Priority侧重于单个注入的优先级排序;
  • @Priority优先级比@Order更高,两者共存时优先加载@Priority;
  • @Primary是优先级最高的,如果同时有@Primary、@Order、Ordered的话,@Primary注解的Bean会优先加;。

使用

public interface StockService {
}
@Component
@Order(1)
@Priority(2)
public class StockServiceImpl1 implements StockService {
}
@Component
@Order(2)
@Priority(1)
public class StockServiceImpl2 implements StockService {
}
@Component
public class OrderService {
   @Autowired
   StockService stockService;

   public void pay() {
      System.out.println(stockService + " is created");
   }
}
public class Test {

   public static void main(String[] args) {
      AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);

      OrderService o2 = (OrderService) context.getBean("orderService");
      o2.pay();
   }
}

打印结果:

com.sonnie.annotest.StockServiceImpl2@4141d797 is created

本文标签: Priority