【发布时间】:2015-07-09 06:19:43
【问题描述】:
使用示例:
我想在类字段上添加一个自定义注释 @MyContainer,然后在所有此类字段上自动添加相关的 Hibernate 注释(取决于字段类型和属性)。
另外,我需要在类中添加 JAXB XmlType 注释,并将类型名称基于类名。
我还想根据他们的类型等向字段添加注释。
所有添加的注释都应该在运行时可用(因此 hibernate / JAXB 可以找到它们)。
我知道以下选项:
- 预处理类源(错误选项)
- 在编译期间使用 javax.annotation.processing API 进行处理
- 使用 Java Assist 等工具进行编译后操作
- 在类加载过程中使用 java.lang.instrument API 进行操作
- 用 AspectJ 来做(不够强大)
我的主要目标是:
- 保持类和源之间的同步以进行调试
- 支持同时使用 Maven 和 IDE (Eclipse / Intellij)
如果已经做过此类事情的人能推荐完成此类任务的最佳方法(可能还有潜在的陷阱),我将不胜感激。
【问题讨论】:
-
不生成注解,而是生成hibernate配置可以加载的hibernate映射XML文件(hbm.xml)怎么办?
-
谢谢,这是个好主意,但我更喜欢注释选项,因为我还需要生成 JAXB 注释(将来可能还会生成其他注释)。
标签: java compiler-construction annotations bytecode-manipulation