我正在构建一个严重依赖于JaxB和Weld的Java SE应用程序,两者设计完全不同,本质上是不兼容的。为了说明,解组后,下面的记录器将为空。
@XmlRootElement(name="root")
public class MyObject {
@Inject
private Logger log;
}
使用UnmarshallListener
我正在使用BeanManager
对现有的Object实例进行Weld注入。
我真的在程序中的所有对象上使用CDI。我可以使用工厂方法在任何实例上执行相同的注入,但这需要(大量)重构。
我想知道是否有任何方法可以通过覆盖
覆盖我的代码中的evey对象的实例化Object o = new Object(); // Catch this event and perform CDI
答案 0 :(得分:1)
是的,您可以使用Instrumentation捕获对象实例。代理需要注册一个ClassFileTransformer,它将扫描所有已加载类的字节码以获取新对象指令,并且做得好......你需要它做什么。
查看this tutorial以获取有关如何使用检测包的示例。