Spring OrderUtils详解

简介: 《读尽源码》
  • org.springframework.core.annotation.OrderUtils主要方法如下
  1. getOrder
  2. getPriority
  • 测试类org.springframework.core.annotation.OrderUtilsTests
@Nullable
    public static Integer getOrder(Class<?> type) {
        // 缓存中获取
        Object cached = orderCache.get(type);
        if (cached != null) {
            // 返回 int
            return (cached instanceof Integer ? (Integer) cached : null);
        }
        /**
         * 注解工具类,寻找{@link Order}注解
         */
        Order order = AnnotationUtils.findAnnotation(type, Order.class);
        Integer result;
        if (order != null) {
            // 返回
            result = order.value();
        } else {
            result = getPriority(type);
        }
        // key: 类名,value: intValue
        orderCache.put(type, (result != null ? result : NOT_ANNOTATED));
        return result;
    }
Copy to clipboardErrorCopied
@Nullable
    public static Integer getPriority(Class<?> type) {
        if (priorityAnnotationType == null) {
            return null;
        }
        // 缓存中获取
        Object cached = priorityCache.get(type);
        if (cached != null) {
            // 不为空返回
            return (cached instanceof Integer ? (Integer) cached : null);
        }
        // 注解工具获取注解
        Annotation priority = AnnotationUtils.findAnnotation(type, priorityAnnotationType);
        Integer result = null;
        if (priority != null) {
            // 获取 value
            result = (Integer) AnnotationUtils.getValue(priority);
        }
        // 向缓存插入数据
        priorityCache.put(type, (result != null ? result : NOT_ANNOTATED));
        return result;
    }
相关文章
|
7月前
|
XML Java 开发者
【Spring】Spring是什么?
【Spring】Spring是什么?
【Spring】Spring是什么?
|
2月前
|
XML Java 数据格式
Spring介绍
【10月更文挑战第9天】
|
6月前
|
Java Spring
spring 使用遇到的问题
spring 使用遇到的问题
48 0
|
7月前
|
Java 程序员 Maven
|
7月前
|
存储 设计模式 Java
【Spring】——Spring简单 读和取(二)
【Spring】——Spring简单 读和取
64 0
【Spring】——Spring简单 读和取(二)
|
7月前
|
存储 Java 数据库
【Spring】——Spring简单 读和取(一)
【Spring】——Spring简单 读和取
80 0
【Spring】——Spring简单 读和取(一)
|
7月前
|
前端开发 Java 开发者
【Spring】 ——初识Spring
【Spring】 ——初识Spring
59 0
|
设计模式 前端开发 Java
Spring 详解
Spring 详解
25362 5
|
XML 开发框架 Java
Spring详细总结1
1.Spring简介 1.1 Spring概述 (1)Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用Spring 框架 来创建性能好(spring为我们提供对象的创建)、易于测试(整合了Junit)、可重用的代码(例如把事务的代码放到切面中, 再把切面作用于方法中)。
193 0
Spring详细总结1
|
XML 前端开发 Oracle
spring知识总结(一)
spring知识总结(一)
253 0
spring知识总结(一)