美文网首页
反射生成注解实例

反射生成注解实例

作者: 填坑之路_DK | 来源:发表于2021-07-13 15:00 被阅读0次
    1. 注解无法根据class直接newInstance出一个实例
    2. 根据Class中的createAnnotationData方法,可以看出注解的生成在AnnotationParser.parseAnnotations()中完成
    3. 最终调用AnnotationParser.annotationForMap(注解类,注解属性)方法生成注解实例
    4. 只有注解属性包含的,才会生成方法和方法返回值
         private RocketMQMessageListener instanceRocketMQMessageListener(String tag) {
            //获取注解默认属性
            AnnotationType instance = AnnotationType.getInstance(RocketMQMessageListener.class);
            Map<String, Object> stringObjectMap = instance.memberDefaults();
            // 完善注解必填属性
            stringObjectMap.put("topic", "ZT-TOPIC");
            stringObjectMap.put("consumerGroup", "newProducer");
            stringObjectMap.put("selectorExpression", tag);
            //反射生成实例
            return (RocketMQMessageListener)   AnnotationParser.annotationForMap(RocketMQMessageListener.class, stringObjectMap);
        }
    

    相关文章

      网友评论

          本文标题:反射生成注解实例

          本文链接:https://www.haomeiwen.com/subject/kafspltx.html