知识大全 Spring Security 2资源-角色查找源码研究及性能改进

Posted

篇首语:其实最美好的日子就是,我对你闹,你对我笑。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring Security 2资源-角色查找源码研究及性能改进相关的知识,希望对你有一定的参考价值。

Spring Security 2资源-角色查找源码研究及性能改进  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在研究SS 的时候 把Source存放到数据库中 进行角色配置 SS 把这些资源角色读取到一个Map中在得到一个URL请求时 使用这个URL遍历这个Map 查找是否存在这个Key 如果有 则取出对应的角色

  问题就在这个遍历Map上 源代码如下

    private ConfigAttributeDefinition lookupUrlInMap(Map requestMap  String url)         Iterator entries = requestMap entrySet(erator();        while (entries hasNext())             Map Entry entry = (Map Entry) entries next();            Object p = entry getKey();            boolean matched = urlMatcher pathMatchesUrl(p  url);            if (logger isDebugEnabled())                 logger debug( Candidate is:   + url +  ; pattern is   + p +  ; matched=  + matched);                        if (matched)                 return (ConfigAttributeDefinition) entry getValue();                            return null;    

  return null 这个Method中一上来就作遍历循环 为什么不先利用Map的特性直接先取一次 如果取得到 直接就返回了 如果取不到 再遍历查找 这样可以提高命中率 从而提高性能 如果找不到 这一次的Map查找性能应该也不是很低吧?

    private ConfigAttributeDefinition lookupUrlInMap(Map requestMap  String url)         ConfigAttributeDefinition cad = (ConfigAttributeDefinition)requestMap get(url);        if(cad != null)             return cad;                           Iterator entries = requestMap entrySet(erator();        while (entries hasNext())             Map Entry entry = (Map Entry) entries next();            Object p = entry getKey();            boolean matched = urlMatcher pathMatchesUrl(p  url);            if (logger isDebugEnabled())                 logger debug( Candidate is:   + url +  ; pattern is   + p +  ; matched=  + matched);                        if (matched)                 return (ConfigAttributeDefinition) entry getValue();                            return null;    

  当然 这要权衡系统URL配置的特性 诸如xxx*这种类型的配置多的话 还是原来的方式快一点 如果直接xxx这种方式多得话 我说的方式就要快一些

cha138/Article/program/Java/ky/201311/28285

相关参考

知识大全 Spring Security学习总结二

SpringSecurity学习总结二  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前一篇文章

知识大全 spring security3.1 不再支持 filters=none 解决办法

  最近关于springsecurity不再支持filters=none我们有了新的解决办法方法如下  [java]  <security:autoconfig=true>  <!l

在Windows7资源管理器中查找文件时,不能充当查找文件的是

在Windows7资源管理器中查找文件时,不能充当查找文件的是_____。A、文件类型B、文件页码C、文件日期D、文件名答案:B解析:在Windows7资源管理器中查找文件时,可以根据文件的类型、日期

知识大全 spring关于底层资源的抽象

    private String templatePath;    public vo

知识大全 简述管理者在决策部分的主要角色及其意义

管理者在决策部分的主要角色及其意义是什么?决策角色:处理信息并得出结论。管理者以决策让工作小组按照既定的路线行事,并分配资源以保证计划的实施。信息是决策制定的基本投入。管理者在组织的决策制定系统中起着

知识大全 spring连接池配置详解

  数据库连接池概述  数据库连接是一种关键的有限的昂贵的资源这一点在多用户的网页应用程序中体现得尤为突出对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性影响到程序的性能指标数据库连接池正是

知识大全 Spring系列第2部分:当Hibernate遇上Spring

Spring系列第2部分:当Hibernate遇上Spring  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 Struts 2, spring 2, hibernate

Struts2,spring2,hibernate  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Spring 2.5 中配置 JPA

Spring2.5中配置JPA  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文提供了一个简单

知识大全 Spring事务管理高级应用难点剖析(2)

Spring事务管理高级应用难点剖析(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  应用分