我想用指定的注释(比如@Monitor)来监视所有类的所有公共方法(注意:注解是在类级别的)。 这可能是一个可能的切入点? 注意:我正在使用@AspectJ风格的Spring AOP。
是否有可能构build一个Java代码片段,使假设的java.lang.ChuckNorrisException不可捕捉? 想到的想法是使用拦截器或面向方面的编程 。
你使用哪个Javascript AOP库,它的主要特点是什么?
面向方面编程有什么好的资源来包装我的头? PS:我需要了解AO编程,而不是可用于.NET或C#的库或框架:)
在C#,VB.net中有很多的AOP实现。 这是一些AOP的实现: PostSharp LOOM.NET Aspect.NET 企业库3.0策略注入应用程序块 AspectDNG DotSpect (.SPECT) Spring.NET框架作为其function的一部分 Wicca和Phx.Morph Twente大学提供了针对.NET的AOSD解决scheme的详尽分析 Seasar.NET 方面# Puzzle.NAspect 撰写* 设定点 NConcern .NET AOP框架 … .net中AOP的最佳实现是什么? 我应该用什么?
我知道日志logging是AOP的主要用例。 此外,还要logging日志包装器,以便您可以使用DI,以便类不会与特定的日志logging实现结合使用。 但是, 有些人认为logging包装是一种反模式 。 首先,这样的观点是因为在大多数情况下,包装往往是简单的,并删除了日志框架的许多特定的function。 如果你实现这些特定的function,为什么不直接使用框架。 我意识到Common.Logging外观试图为您抽象log4Net,EntLib,NLog的大量function。 但是,即使在这里,我们仍然对Common.Logging有各种依赖。 不是在接口等代码/unit testing方式,但如果项目死亡(自上个版本已经超过一年),或者你希望后者切换到不支持的logging器,可能会导致问题。 也就是说, 如果通过AOP来实现日志logging,甚至有必要使用DI作为日志依赖 (也就是说为什么不直接引用NLog)? 是的,代码的AOP部分将被紧密耦合,但是人们想要unit testing的类的逻辑没有日志依赖性(至less在编织发生之前)。 在这一点上,我有点失落(我还没有尝试过AOP)。 编织之后,会不会有AOP代码使用DI导致unit testing方法出现问题? 或者可以一个unit testing而不编织AOP代码? 除非日志logging是软件用户的要求,否则我不确定testing日志logging是否发生在mock中是多么有用。 我认为被测方法的业务逻辑是大多数人对testing感兴趣的。 最后,如果想要使用TDD / BDD,那么在AOP代码中不需要使用DI进行日志logging依赖关系吗? 或者只是不试驾 AOP的一面呢? 正如你所看到的,我试图去感受一下开发一个应用程序的最实际的方法是什么,这个应用程序可以同时使用AOP和横向关注以及DI进行devise/testing。 由于AOP是相对较新的,日志logging是最常见的例子,所推荐的方法是什么?
对于一个给定的类我想跟踪function,即我想logging每个方法调用(方法签名和实际参数值)和每个方法退出(只是方法签名)。 我如何做到这一点假设: 我不想为C#使用任何第三方AOP库, 我不想添加重复代码到所有我想跟踪的方法, 我不想改变类的公共API – 类的用户应该能够以完全相同的方式调用所有的方法。 为了使问题更具体,我们假设有三个类: public class Caller { public static void Call() { Traced traced = new Traced(); traced.Method1(); traced.Method2(); } } public class Traced { public void Method1(String name, Int32 value) { } public void Method2(Object object) { } } public class Logger { public static void LogStart(MethodInfo method, Object[] […]