zoukankan      html  css  js  c++  java
  • springmvc 自定义注解 以及自定义注解的解析

    1,自定义注解名字

    @Target({ElementType.TYPE, ElementType.METHOD})   //类名或方法上
    @Retention(RetentionPolicy.RUNTIME)//运行时

    @component//自定义多个注解,且在一个类中添加两个或以上的,只需要加一个 否则会实例化多次。
    public @interface SocketMapping {
     String value() default "";//参数
    }

    2.测试类


    @SocketMapping("/a")
    public class TestAnno {

     @SocketMapping(value="/b")
     public void ss(){
      System.out.println(11);
     }
     
    }

    3,解析测试类所在的包,反射

    ResourcePatternResolver rpr = new PathMatchingResourcePatternResolver();
      

       Resource[] res = rpr.getResources("classpath*:websocket/**.class");//测试类的包
       
       for(int i=0;i<res.length;i++){
        String className = res[i].getURL().getPath();
        className = className.split("(classes/)|(!/)")[1];
        className = className.replace("/", ".").replace(".class", "");//获取到文件结构  com.xl.joe.testAnno
        Class<?> cla = Class.forName(className);//获取到文件类
        
         if(cla.isAnnotationPresent(SocketMapping.class)){//判断是否存在自定义注解
          System.out.println(cla.getAnnotation(SocketMapping.class).value());//获取自定义注解的属性值
          
         }
         
         Object o = SpringContextUtil.getBean("testAnno");//获取类对象
         
         Method[] methods = cla.getMethods();//获取类的方法
         for(Method method:methods){
          if(method.isAnnotationPresent(SocketMapping.class)){//找到自定义注解
           method.invoke(o, new Object[]{});//反射改方法
          }
         }
        
       }

  • 相关阅读:
    获取股票行情API 接口
    使用百度地图来展示自定义的GPS点,用pyechart 框架实例
    C 语言基础笔记
    GPS 测试汇总和python GPS 导航地图实现
    用python 来炒股二 BeautifulSoup爬虫信息新闻文章
    Python tkinter 笔记 [pack,place,grid 布局管理]
    RSS 订阅精选 2020
    用python来炒股<三> 炒股交易系统(法则)
    使用python 来实现炒股
    鼠须管输入法的配置介绍
  • 原文地址:https://www.cnblogs.com/difme/p/5606880.html
Copyright © 2011-2022 走看看