2

我想在 Coldspring 2.0 中实现一些之前和之后的方法顾问,并且我想使用AOP的新模式和新的自动代理功能。不幸的是, AOP的 Narwhal文档目前是一个悬念。谁能给我一个使用 AOP 模式的 Coldspring 2.0 配置文件的示例?

4

2 回答 2

2

我刚刚完成了 AOP 文档中的另外 1 个部分,但与此同时,这里有一些示例可以帮助您了解情况。

这是一个围绕建议进行设置的示例。它调用对象timer上的方法timeMethod ,该方法与 的切入点相匹配,该切入点转换为:方法执行,即公共的,返回任何内容,命名为任何内容,并接受任何类型的任何参数。本质上,它匹配所有内容。execution(public * *(..))

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.coldspringframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.coldspringframework.org/schema/aop" 
    xsi:schemaLocation="http://www.coldspringframework.org/schema/beans http://coldspringframework.org/schema/coldspring-beans-2.0.xsd 
    http://www.coldspringframework.org/schema/aop http://www.coldspringframework.org/schema/coldspring-aop-2.0.xsd"
    >

<!-- AOP configuration -->  
<aop:config>
    <aop:aspect ref="timer">
        <aop:around method="timeMethod"
            pointcut="execution(public * *(..))"/>
    </aop:aspect>
</aop:config>


<bean name="timer" class="05_AOP.Timer" />
<bean name="longTime" class="05_AOP.LongTime" />

</beans>

需要注意的重要一点是,虽然 Time.cfc 只是一个普通的 CFC,但为了执行周围的建议,正在使用的方法必须将 MethodInvocation 作为参数,如下所示:

public any function timeMethod(required MethodInvocation invocation)
{
     ...
}

但是你去吧,有一个在 CS2 中使用 AOP 的例子。

您仍然可以使用 MethodInterceptors 等,但您将使用<aop:advisor>而不是<aop:aspect>.

但总的来说,我现在正在编写 CS2 AOP 文档,所以它应该会在第二天左右完成。

于 2011-05-13T14:59:20.993 回答
1

医生发布!http://sourceforge.net/apps/trac/coldspring/

于 2011-05-24T23:34:17.797 回答