Как мне сделать сравнение Spring aop по выражению? - PullRequest
0 голосов
/ 10 ноября 2011

Мне нужно получить значение имени свойства logLvl идентификатора компонента logConfig и сравнить его с выражением.

<bean id="logConfig"
    class="com.celfocus.ufe.base.logging.domains.LoggingConfiguration">
    <property name="logDetails" value="STANDARD" />
    <property name="logLvl" value="COMPLET" />
</bean>

<aop:config>
    <aop:aspect ref="ufeLogger">
        <aop:pointcut id="complete" expression="execution(* *.*(..)) and ($logConfig.logLvl=STANDARD)"  />

Этот фрагмент кода дает недопустимый идентификатор символа =. Что я могу сделать, чтобы сделать эту проверку?

Ответы [ 2 ]

0 голосов
/ 10 ноября 2011

Я никогда не видел ничего, что заставляло бы меня думать, что это будет возможно - есть ли у вас документация, демонстрирующая использование выражений внутри подобного pointcut? Во всяком случае, вы можете попробовать использовать экранирование SpEL #{}, но я настроен скептически. Это было бы здорово, если бы это сработало.

Мой первый подход - использовать значение свойства в качестве свойства аспекта, а также конфигурацию журнала.

0 голосов
/ 10 ноября 2011

Вы пробовали ==? Если вы делаете сравнение, в конце концов.

...