Как я могу настроить AOP в ColdSpring 2.0? - PullRequest
2 голосов
/ 08 мая 2011

Я бы хотел реализовать несколько советников по методам до и после в Coldspring 2.0, и я хотел бы использовать новую схему для AOP и новую функцию автоматического проксиК сожалению, документация Narwhal для AOP в настоящее время является препятствием.Кто-нибудь может привести пример файла конфигурации Coldspring 2.0, в котором используется схема AOP?

Ответы [ 2 ]

2 голосов
/ 13 мая 2011

Я только что закончил еще один раздел в документации 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, так что она должна быть заполненана следующий день или около того.

1 голос
/ 25 мая 2011
...