【问题标题】:How to use bytebuddy to set annotation @Value in private variable如何使用 bytebuddy 在私有变量中设置注解@Value
【发布时间】:2021-04-29 08:51:53
【问题描述】:

enter image description here

Class<?> metricTags = new ByteBuddy()
                .subclass(Object.class)
                .name("demo.metrics.MetricTags")
                .annotateType(AnnotationDescription.Builder.ofType(Component.class).build())
                .annotateType(AnnotationDescription.Builder.ofType(Data.class).build())
                .defineField("sourceApp", String.class, Visibility.PUBLIC)
                .annotateField(AnnotationDescription.Builder.ofType(Value.class).define("sourceApp", "dsdw23").build())
                .defineField("sourceServiceNamespace", String.class, Visibility.PRIVATE)
                .defineField("sourceServiceName", String.class, Visibility.PRIVATE)
                .defineField("protocol", String.class, Visibility.PRIVATE).value("http")
                .defineField("appName", String.class, Visibility.PRIVATE)
                .make()
                .load(AgentMain.class.getClassLoader(), ClassLoadingStrategy.Default.WRAPPER)
                .getLoaded();

报告错误: 原因:java.lang.IllegalArgumentException:接口 lombok.Value 没有定义名为 sourceApp 的属性

【问题讨论】:

  • 你能告诉你属性文件的内容吗?

标签: java spring-boot annotations byte-buddy javaagents


【解决方案1】:

错误表明 Value 注释没有定义第一个名称的属性。您只能定义由注解类型声明的属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多