<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

    主站蜘蛛池模板: 亚洲高清视频在线观看| 2022中文字字幕久亚洲| 久热中文字幕在线精品免费| 亚州免费一级毛片| 久久久亚洲裙底偷窥综合| 亚洲免费综合色在线视频| 国产在亚洲线视频观看| 久久www免费人成看国产片| 18禁黄网站禁片免费观看不卡| 国产精品视频免费一区二区三区 | 亚洲精品第五页中文字幕| 波多野结衣亚洲一级| 春意影院午夜爽爽爽免费| 日本高清在线免费| 国产精品亚洲精品| 日本特黄特黄刺激大片免费| 亚洲综合国产精品| 99精品免费视频| 日本高清免费中文字幕不卡| MM1313亚洲精品无码久久| 在线观看免费人成视频色| 亚洲国产精品特色大片观看完整版| 亚洲日韩看片无码电影| 国产性生交xxxxx免费| 91av免费在线视频| 亚洲熟伦熟女新五十路熟妇 | 国产精品国产免费无码专区不卡| 美女黄频视频大全免费的| 好男人视频社区精品免费| 亚洲av日韩av不卡在线观看| 91免费播放人人爽人人快乐| 亚洲一区二区三区日本久久九| 国产香蕉免费精品视频| 国产成人综合久久精品亚洲| 亚洲欧洲美洲无码精品VA| 美女免费精品高清毛片在线视| 亚洲精品国产精品乱码视色| 一级一级一片免费高清| 免费va在线观看| 麻豆69堂免费视频| 久久亚洲AV无码精品色午夜|