我在春季使用过AOP,没有真正的问题,主要用于事务管理,对此它很有魅力。
我的问题是这个..。到目前为止,我在AOP中看到的唯一例子是切分您自己创建的类。是否可以在第三方库中切分类,例如数据库连接类。上下文是,当oracle数据源执行对数据库的调用时,我希望创建一些日志并收集信息,不幸的是,数据库包含在oracle类文件堆栈中。在执行SQL时,如何切分这个类/方法?
发布于 2009-01-30 16:54:41
我认为这是可行的:
让DataSource
请记住,此方法创建原始DataSource的代理,并为每个方法调用委托给它。在数据库操作的上下文中,这不会造成太多额外的开销。您将希望非常小心您的代码正在做的事情,以免它抛出异常并阻止连接的正常运行。也许使用try/catch/finally,并将委托给finally块中的“真正”连接的调用。
另一种完全不同的方法是使用AspectJ并进行加载时编织。这样,一旦ClassLoader加载了类,您就可以用新的功能来修饰它。
https://stackoverflow.com/questions/496080
复制相似问题