我想在 Coldspring 2.0 中实现一些之前和之后的方法顾问,并且我想使用AOP的新模式和新的自动代理功能。不幸的是, AOP的 Narwhal文档目前是一个悬念。谁能给我一个使用 AOP 模式的 Coldspring 2.0 配置文件的示例?
问问题
276 次
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
于 2011-05-24T23:34:17.797 回答