【问题标题】:Is there a way to use annotations to build a java class, based on the properties of multiple java classes?有没有办法使用注解来构建一个java类,基于多个java类的属性?
【发布时间】:2020-06-12 19:30:36
【问题描述】:

有没有办法使用注解构建一个java类,基于多个java类的属性?

我想为 spring data jpa 项目中的所有操作和实体创建一个通用日志历史表,为此我在想是否可以在编译时获取我的实体的所有属性以生成这个通用实体日志类.

我对注释了解不多,但它是用来生成源文件的,所以我相信这不是一个不可能的想法。

有人能指点一下吗?如果可能的话,我会很好地指出一个好的起点。或者,如果已经完成了符合我意图的事情。

【问题讨论】:

    标签: java spring-data-jpa annotations


    【解决方案1】:

    注释本身不会生成源文件——它们表示其他类的切入点以增强/丰富它们,或者作为标记接口。

    但是,您绝对可以使用注释扫描器来扫描文件并获取所有字段。 然后剩下的就是从中生成一个类。 (然后,编译它)。请注意,这是一个多步骤的过程,它可能看起来有点笨拙:创建一个名为 GenericEntity 的文件,确保它在正确的包中(所以以 package my.fun.project 开头,编写导入,然后编写java类,全部作为您发送到文件的字符串。 从您的扫描中,您有一个带注释的字段/类,您可以获得类型和名称(如有必要,请参阅反射库),并将其写入您的文件。然后使用} 正确关闭课程。现在它应该是一个在 IDE 中加载时不会出现编译错误的文件。 然后必须在您的源代码上执行这个 GenericEntityGenerator(可能使用 maven 插件),可能是在 generate-sources 阶段,之后您生成的类将在编译阶段被编译......现在 bob 是你的叔叔了。

    总之,一个有趣的项目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-29
      • 2016-10-04
      • 2012-11-23
      • 2015-01-13
      • 1970-01-01
      相关资源
      最近更新 更多