最開始一直不去自定配置類,究其緣由發現是少了:html
/** * Shiro配置類 */ @Configuration
少了@Configuration,這個註解配置。java
一路順暢的走了下來:面試
是否是要美滋滋的走上康莊大道了呢?ide
發現:code
anon,匿名放行機制無論用哦。怎麼回事呢?
修改爲了:htm
//放行頁面; filterMap.put("/testThymeLeaf","anon"); //攔截某個目錄下的全部頁面; filterMap.put("/*","authc");
再配置shiro的時候,以下代碼要注意:blog
一、下述代碼中必須是LinkedHashMap 而不能是HashMap。get
二、anon定義必須在authc以前數學
不然anon定義不生效it
怎麼還不行呢?
anon配置的匿名路徑被攔截
主要緣由:配置過濾器集合時使用了HashMap
Map<String,String> filterMap=new HashMap<>();
正確代碼以下:應該使用LinkedHashMap
Map<String,String> filterMap=new LinkedHashMap<>();
面試題時刻:
爲何這裏用LinkedHashMap?
劃重點了:
(一)HashMap取值--->不是按照插入順序
HashMap<String,Integer> hm=new HashMap<String, Integer>(); hm.put("大學語文",3); hm.put("英語",1); hm.put("音樂鑑賞",5); hm.put("數學",2); hm.put("形式政策",4); for (Map.Entry<String ,Integer> entry:hm.entrySet()){ System.out.println(entry.getKey()+" : "+entry.getValue()); }
(二):LinkedHashMap的取值--->是按照插入取值
LinkedHashMap<String,Integer> lhm=new LinkedHashMap<String,Integer>(); lhm.put("化學",1); lhm.put("生物",2); lhm.put("物理",3); lhm.put("語文",4); lhm.entrySet(); for (Map.Entry<String,Integer> entry:lhm.entrySet()){ System.out.println(entry.getKey()+" : "+entry.getValue()); }