Как я могу настроить AOP в ColdSpring 2.0?
Я хотел бы реализовать некоторые советники по методам до и после в Coldspring 2.0, и я хотел бы использовать новую схему для AOP и новую функцию автопроксирования. К сожалению, документация Narwhal для AOP в настоящее время является хитом. Кто-нибудь может привести пример файла конфигурации Coldspring 2.0, в котором используется схема AOP?
2 ответа
Я только что закончил еще один раздел в документации AOP, но пока приведу несколько примеров того, как начать работу.
Это пример настройки вокруг совета. Он вызывает метод 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)
{
...
}
Но вот вам пример использования AOP в CS2.
Вы все еще можете использовать MethodInterceptors и тому подобное, но вы будете использовать <aop:advisor>
скорее, чем <aop:aspect>
,
Но в целом, я сейчас работаю над документацией по CS2 AOP, поэтому она должна быть заполнена на следующий день или около того.