Aspects 和aop

  • 内容
  • 评论
  • 相关

界说格式:pointcut变量名=标记符(||标记符……)配合抒发式(namepointcut)"intC::%(...)"配合一切类C中归来值为int的分子因变量;"%List"配合肆意以List为结尾的类、构造、联合或枚举;"%printf(constchar*,...)"配合大局域中名为print、有最少一个constchar*型形参、归来肆意品类的因变量;"const%&...::%(...)"配合一切归来值为constreference的因变量;pointcut抒发式"%List"&&!derived("Queue")描述以List结尾、不派生自基类Queue的一切类;call("voiddraw")&&within("Shape")描述一切对类Shape中voiddraw法子的调用;pointcut声明pointcutlists=derived("List");*advice:界说横向切入时加到pointcut的代码。

撑持编译时,后编译和加载时编制LessPowerful–onlysupportsmethodlevelweaving--不足–仅撑持法子级编制|MorePowerful–canweavefields,methods,constructors,staticinitializers,finalclass/methods,etc…–更强硬–得以编制字段,法子,结构因变量,静态初始值设定项,最终类/法子等…CanonlybeimplementedonbeansmanagedbySpringcontainer--不得不在Spring器皿保管的bean上兑现|Canbeimplementedonalldomainobjects--得以在一切天地冤家上实施Supportsonlymethodexecutionpointcuts--仅撑持法子履行切入点|Supportallpointcuts--撑持一切切入点Proxiesarecreatedoftargetedobjects,andaspectsareappliedontheseproxies--代办是对准目标冤家创始的,而且上面已使用来这些代办|Aspectsareweaveddirectlyintocodebeforeapplicationisexecuted(beforeruntime)–在使用顺序执作为先(运转时事先)将上面径直编制到代码中MuchslowerthanAspectJ--比AspectJ慢得多|BetterPerformance--更好的性能Easytolearnandapply--容易念书和使用|ComparativelymorecomplicatedthanSpringAOP--比SpringAOP繁杂得多5\\.选择对的框架如其咱辨析本节中提出的一切论点,就会肇始了解,一个框架基本没有另一个框架更好。

**五种通牒:**@Before:前置通牒,在方佛事先履行。

鉴于同一个因变量中会有很多因变量调用,每个因变量名得以被联系到一连串的call>joinpoint。

评论

0条评论

发表回复

您的电子邮箱地址不会被公开。