Arouter 注解

Arouter 注解

Route

@Route是Arouter中大家最常用的注解

public @interface Route {
    String path();
    String group() default "";
    String name() default "";
    int extras() default Integer.MIN_VALUE;
    int priority() default -1;
}

再介紹下Warehouse,主要是裝載了各種映射關(guān)系,比較簡單

// 裝載了所有的分組映射類,key是分組名,value是group映射的類名
static Map<String, Class<? extends IRouteGroup>> groupsIndex = new HashMap<>();
// 裝載了所有的直接映射關(guān)系,各個分組內(nèi)的詳細(xì)的映射關(guān)系,value是path,value是RouteMeta
static Map<String, RouteMeta> routes = new HashMap<>();

// 裝載了所有的服務(wù)提供者的映射,value是IProvider對應(yīng)的class,value是對應(yīng)的服務(wù)提供者,所以IProvider是單例,每一個類只有一個value
static Map<Class, IProvider> providers = new HashMap<>();
//服務(wù)提供者IProvider的映射,key是類名,value是RouteMeta
static Map<String, RouteMeta> providersIndex = new HashMap<>();

// 攔截器的映射,key為攔截器Interceptor的優(yōu)先級,用的是UniqueKeyTreeMap,不允許有相同優(yōu)先級的攔截器
static Map<Integer, Class<? extends IInterceptor>> interceptorsIndex = new UniqueKeyTreeMap<>("More than one interceptors use same priority [%s]");
//攔截器IInterceptor的列表
static List<IInterceptor> interceptors = new ArrayList<>();

里面有RouteMeta類的使用,下面在詳細(xì)分析下RouteMeta

private RouteType type;         // 路由類型,有ACTIVITY,F(xiàn)RAGMENT,PROVIDER等
private Element rawType;        // 路由的原始類型
private Class<?> destination;   // 目標(biāo)類
private String path;            // Path 
private String group;           // Group 
private int priority = -1;      // 優(yōu)先級,值越小優(yōu)先級越高
private int extra;              // 可以用于做一些是否需要登陸需求,
private Map<String, Integer> paramsType;  // 參數(shù)類型
private String name;//name

private Map<String, Autowired> injectConfig;  // 緩存inject配置

RouteMeta對@Route注解進(jìn)行解析后再封裝的對象,在@Route里面配置的值都會解析成RouteMeta的屬性

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ARouter是什么 ARouter是阿里巴巴開源的Android平臺中對頁面、服務(wù)提供路由功能的中間件,提倡的是...
    雪寶Wu閱讀 7,177評論 0 64
  • 本文章用于記錄筆者學(xué)習(xí) ARouter 源碼的過程,僅供參考,如有錯誤之處還望悉心指出,一起交流學(xué)習(xí)。 ARout...
    DevLocke閱讀 14,101評論 6 52
  • Arouter Arouter是一款路由框架,在做組件化是用于組件間通信(包括頁面跳轉(zhuǎn),調(diào)用另一個組件的服務(wù)等),...
    嗯哼嗯哼嗯哼嗯哼閱讀 492評論 0 0
  • 聽! 那位叩門的姑娘, 輕輕地吹著口哨, 發(fā)出悅耳的輕響。 瞧! 那個活潑的少女, 披著青綠的紗衣, 攜著細(xì)雨和清...
    穴小鸮_閱讀 267評論 1 4
  • 微小說 孝子 許向前是個孝子,常常寄錢給鄉(xiāng)下的母親。賺工資的那會兒,每逢發(fā)了工資最少也要給...
    子良_b739閱讀 279評論 0 0

友情鏈接更多精彩內(nèi)容