В моем приложении для весенней загрузки у меня есть зависимость от внешнего jar-файла, который содержит класс, помеченный аннотацией, для которого запускается @Aspect из этого jar-файла.
У меня есть метод dao, аннотированный пользовательской аннотацией mu:
@MyAnnotation
public void save(MyEntity entity)
{
super.save(entity);
}
У меня есть аспект, в котором есть совет, после отправки сообщения save () вызывается метод:
@Aspect
public class MySuperAspect
{
@Autowired
MessageSender messageSender;
@Around("@annotation(MyAnnotation) && args(entity)")
public void sendMessage(MyEntity entity)
{
messageSender.send();
}
}
Мне нужен метод Дао из банки, но я хочу отключить аспект для него.
Аспект создается с помощью конфигурации Spring XML, которая также находится в банке, которую я использую.
Я мог бы изменить сам аспект, но это нежелательно, поскольку он используется не только моим приложением с весенней загрузкой.
Я пытался:
- Отключение конфигурации xml от сканирования в моем приложении весенней загрузки;
- Изменение конфигурации xml на аннотации и фильтрация при сканировании;
- Добавление @ConditionalOnExpression и @ConditionalOnProperty к аспекту, который должен быть отключен свойством;
На данный момент единственный способ, который работает, - добавить аннотацию @Value со свойством, с помощью которой я могу контролировать логику в совете, но мне интересно, это единственный способ сделать это или, возможно, я что-то упустил?