Esk*_*ola 9 java aop osgi bytecode-manipulation
我正在创建一个应用程序服务器,在其中我需要使用一些字节码操作(例如,将自定义equals和hashCode方法插入到带注释的类中@Entity).现在我给JVM一个Java代理(-javaagent选项),它使用ASM进行字节码转换.
我一直在考虑使用OSGi,但我不知道它是否允许我进行必要的字节码操作.
@Entity注释的API包的人都必须被操纵.1) 是的,可以在 OSGi 中进行字节码操作。其方式与标准 java 略有不同,您需要使用此处描述的扩展器模式http://www.osgi.org/blog/2007/02/osgi-extender-model.html。我相信 Eclipse 在他们的春分方面项目中使用了它:http://www.eclipse.org/equinox/incubator/aspects/。Spring DM肯定使用这种模式来自动配置 osgi dm 模块。
2)这取决于您使用的扩展模式。这就是 spring 扩展器的工作方式,在平台启动配置文件之前,在包的 META-INF/spring 文件夹中查找配置文件。
3)同样,这取决于您定义的扩展器。
4)我相信这是可能的,因为在启动包之前,它必须解析并启动依赖项,然后您的扩展程序可以分析包依赖项并启动字节码操作。
| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |