Как мне выполнить сравнение Spring aop с выражением?

#xml #spring #javabeans #spring-aop

#xml #spring #javabeans #spring-aop

Вопрос:

Мне нужно получить значение имени свойства 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)"  />
  

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

Ответ №1:

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

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

Ответ №2:

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