<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    午后星期午

    使用Spring mvc 利用java的反射技術,來掃描對應包下的注解請求url 統一保存在數據庫中

    僅對  @requestMapping("/xxxx/其他參數")  的格式
     package cc.wshao.springmvc.util;
    import java.io.File;
    import java.lang.reflect.Method;
    import java.net.URL;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import cc.wshao.springmvc.service.RightService;
    public class RegRightUtils {
    private static final String rootUrl = "/spring";
    private static RightService rightService;
    public static void main(String[] args) throws Exception {
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
      rightService = context.getBean(RightService.class);
    ClassLoader classLoader = RegRightUtils.class.getClassLoader();
    URL url = classLoader.getResource("com/er07/book/springmvc/controller");
    String rootPath = url.getPath().toString();
    File rootFile = new File(rootPath);
    File [] files = rootFile.listFiles();
    for(File f: files) {
    System.err.println(f.getName());
    String className = f.getName().substring(0, f.getName().indexOf(".class"));
    Class clazz = Class.forName("com.er07.book.springmvc.controller."+className);
    parseClass(clazz);  //解析  出url
    }
     
    }
    public  static void parseClass(Class clazz) {
     
    if(clazz.isAnnotationPresent(Controller.class)) {   //是否為一個controller ? 
    String classUrl ="";
     if(clazz.isAnnotationPresent(RequestMapping.class)) {
     RequestMapping requestMapping_clazz = (RequestMapping) clazz.getAnnotation(RequestMapping.class);
      classUrl = requestMapping_clazz.value()[0];
      
      if(classUrl.equals("/")) {  //如果是"/" 的話  制空    
      classUrl ="";
      }
     }
     Method [] ms = clazz.getDeclaredMethods();
     
     for(Method m :ms) {
     
     if(m.isAnnotationPresent(RequestMapping.class)) {
     RequestMapping requestMapping_method = m.getAnnotation(RequestMapping.class);
     String methodUrl = requestMapping_method.value()[0];
     
       int  index = methodUrl.indexOf("/");
       index = methodUrl.indexOf("/",index+1);
       if(index!=-1) {  //如果存在 則進行截取前面的url 
       
        methodUrl = methodUrl.substring(0, index);
       }
     String resultUrl = rootUrl+classUrl+methodUrl;
     rightService.appendRightByUrl(resultUrl);
     }
     }
    }
    }
    }
    //實現方法: 
    public void appendRightByUrl(String url) {
    //查詢 此url 在數據庫中是否存在  此權限
    String hql = "from Right where rightUrl =?";
    Right r = (Right) this.rightDao.uniqueResult(hql, url);
    if(r==null) { //不存在 , 插入數據庫中
    Right newRight = new Right();
    newRight.setRightUrl(url);
    this.saveOrUpdateRight(newRight);
    }
    }

    posted on 2014-03-25 14:54 午后星期午 閱讀(1248) 評論(0)  編輯  收藏 所屬分類: JavaEE

    主站蜘蛛池模板: 亚洲七久久之综合七久久| 亚洲大香人伊一本线| 无码一区二区三区亚洲人妻| 一二三四在线播放免费观看中文版视频 | 亚洲国产精品成人综合久久久| 久久国产精品萌白酱免费| 亚洲另类激情综合偷自拍图 | 黄色免费在线网站| 亚洲狠狠婷婷综合久久久久| 野花香在线视频免费观看大全| 狠狠亚洲婷婷综合色香五月排名| CAOPORN国产精品免费视频| 亚洲人成影院在线无码按摩店| 红杏亚洲影院一区二区三区| 好吊色永久免费视频大全| 久久青青草原亚洲av无码| 国产免费无码AV片在线观看不卡| 亚洲天堂在线播放| 免费99精品国产自在现线| 亚洲av色香蕉一区二区三区蜜桃| www亚洲一级视频com| 亚洲 欧洲 日韩 综合在线| 男女午夜24式免费视频| 亚洲高清免费在线观看| 暖暖免费高清日本中文| 久久精品国产亚洲AV高清热| 久草视频免费在线观看| 亚洲国产精品日韩av不卡在线| 亚洲色婷婷综合开心网| 日本一区二区免费看| 亚洲人成网站色在线观看| 无码国产亚洲日韩国精品视频一区二区三区 | 一区二区三区免费看| 久久亚洲色一区二区三区| 久久大香伊焦在人线免费| 国产人成亚洲第一网站在线播放| 日本中文一区二区三区亚洲| 免费视频成人片在线观看| 久久精品熟女亚洲av麻豆| 亚洲欧洲自拍拍偷午夜色无码| 18禁网站免费无遮挡无码中文|