2012-01-02 61 views
5

我有一点奇怪的要求。我想。如何拦截Java中的对象创建

我想使用我创建的自定义代理来装饰实现特定接口的所有对象,但是我需要它对代码本身是透明的。可以包含在构建过​​程中的东西将是完美的。

我在AOP的想法,但没有看到这样的能力,我正在寻找想法,甚至是疯狂的想法。我正在考虑在编译之后更改源代码并重新编译它,至少将新的直接调用替换为新的(我猜这不会通过反射来获得对象创建,但这将是一个不错的开始),但我可以想到一百万个问题这可能会破坏我的主要目标,即让这种仪器尽可能透明。

你们有过这种不寻常的事情吗?

问候

回答

3

使用注释来装饰类和使用批注处理注入你需要的代码。

仅供参考,Hibernate采用这种方法

+0

嗨,问题的关键是,我需要拦截的就是对象的构造,返回,而不是纯粹的对象的代理,Hibernate并不包在代理,但有史以来豆经过一些明确的调用hibernate/jpa(保存/坚持Session等)。我需要更透明的东西 – PedroSena 2012-01-03 09:56:33