Я только что закончил еще один раздел в документации AOP, но пока приведу несколько примеров того, как начать действовать.
Это пример настройки вокруг рекомендаций.Он вызывает метод timeMethod для объекта timer , который соответствует pointcut 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>
.
Но в целом, я сейчас работаю над документацией AOP CS2, так что она должна быть заполненана следующий день или около того.