[基于多种Java类的属性,有一种方法可以使用注释来构建Java类?
我想为spring data jpa项目中的所有操作和实体创建一个通用日志历史记录表,为此,我在考虑是否有可能在编译时获取我的实体的所有属性以生成该通用实体日志类。
我对注释了解不多,但是它用于生成源文件,因此我相信这不是不可能的想法。
有人能给我些指示吗?如果可能的话,请为我指出一个好的起点。或者,如果已经做了一些符合我意图的事情。
注解本身不会生成源文件,它们表示其他类的切入点以增强/丰富它们,或作为标记界面。
但是,您可以使用注释扫描程序来扫描文件并获取所有字段。然后剩下的就是从中生成一个类。(然后编译)。意识到这是一个多步骤的过程,可能看起来有些笨拙:您创建了一个名称为GenericEntity
的文件,请确保该文件位于正确的程序包中(因此请以package my.fun.project
开头,编写导入文件,然后编写java类,全部作为字符串发送给文件。通过扫描,您将获得一个带注释的字段/类,然后可以获取类型和名称(如有必要,请参见反射库),并将其也写入文件。然后使用}
正确关闭该类。现在,它应该是一个文件,在您的IDE中加载该文件时不会出现编译错误。然后,必须在generate-sources
阶段在您的源代码上执行此GenericEntityGenerator(可能使用maven插件),之后,将在编译阶段对生成的类进行编译..现在bob是您的叔叔。
总而言之,是一个有趣的项目