Чтение определения Aspectj Pointcut из файла свойств для LTW

Я использую аспект j LTW в своем приложении guice и пытаюсь сделать определение pointcut для аспектов, управляемых из файла конфигурации. Например:

pointcut publicOperation() : execution(*** READ THIS FROM CONFIG/PROPERTY FILE ****);
Object around() : publicOperation() {
        .....
    }

какие все возможные варианты у меня есть?

Спасибо


person Sammy    schedule 08.08.2013    source источник
comment
Разве это не должно быть скомпилировано? Вы говорите о замене фильтра прямо перед компиляцией?   -  person Sotirios Delimanolis    schedule 08.08.2013
comment
Да, он будет скомпилирован при первой сборке проекта, но после этого я просто хочу иметь возможность изменять выражение pointcut из внешнего файла без необходимости перестроения. просто нужно перезапустить сервер, чтобы LTW забрал новый pointcut.   -  person Sammy    schedule 08.08.2013
comment
Я мало что знаю об аспектах, но разве эти объявления не являются статическими, т.е. не изменяются во время выполнения?   -  person Sotirios Delimanolis    schedule 08.08.2013


Ответы (1)


Поместите определения pointcut в aop.xml, как это предлагается в Руководство по среде разработки AspectJ.

person kriegaex    schedule 09.08.2013
comment
Спасибо за предложение. таким образом, я должен сделать абстрактный аспект и сделать так, чтобы все мои аспекты расширяли его. поскольку только конкретные аспекты, которые расширяют абстрактные аспекты, могут определять точки в aop.xml. Кроме того, мне придется вынести aop.xml, чтобы его можно было модифицировать без создания проектов aspectj. - person Sammy; 10.08.2013
comment
И что? Это проблема? По крайней мере, это жизнеспособное решение. Вы сказали в другом замечании: я просто хочу иметь возможность изменять выражение pointcut из внешнего файла без необходимости перестраивать. Бинго! Я просто дал вам то, что вы просили и это даже канонический способ без пакости. Чего еще ты хочешь? - person kriegaex; 10.08.2013
comment
Да, да! это определенно сработает. Я надеялся, что есть способ, с помощью которого я могу позволить системным администраторам (которым не нужно знать об аспектах) изменять файл свойств, например (MONITORED_METHOD=execution(........), но если это это невозможно Ваш ответ будет окончательно принятым;) - person Sammy; 10.08.2013
comment
Вы можете либо научить их изменять код во всех подходящих местах aop.xml, либо создать промежуточный слой, позволяющий им просто вводить имена методов, а затем объединять их в соответствующие места с помощью небольшого инструмента-генератора. . Это зависит от того, как далеко вы хотите зайти, чтобы облегчить им задачу. - person kriegaex; 10.08.2013