Я работаю над унаследованным приложением, где Spring AOP (а именно, ProxyFactoryBean
) используется.
Я должен добавить аспект вокруг метода определенного класса. Этот класс не является бобом как бы то ни было. Выражение AspecjJ pointcut было бы похоже на это: execution(* xyz.package.Class.method())
Я создал a MethodInterceptor
и AspectJExpressionPointcut
, но я не знаю, как заставляют те два сотрудничать.
Править:
У меня нет исходного кода для этого класса, это - сторонняя библиотека. Экземпляры этого класса не создаются мной, ни в исходном коде, ни в пружинной конфигурации как бобы. Это используется внутренне библиотекой.
Любая справка ценится.
Вы можете использовать плетение во время загрузки с полной поддержкой AspectJ, как описано здесь , это не требует доступа к источнику классов получать советы и контролировать их создание (хотя для этого требуется
и присутствие самого ткача с помощью -javaagent: ...
или другие методы ).
Try @Configurable
. Это объясняется в этой документации.
Аннотация @Configurable помечает класс как подходящий для конфигурации на основе Spring
(вам понадобится
)
Обновление.
Вы можете сделать сторонний компонент бобом, перечислив его в applicationContext.xml
как
(при этом вам не понадобится @Configurable
)