Я не говорю о том, чтобы имитировать функции AOP в Scala (то есть использовать Черты вместо Аспектов), мне интересно, возможно ли сделать настоящий AOP в Scala (то есть советы, аспекты, совместные точки, плетение и т. Д ... )
Mixin - это классический способ представить AOP в Scala (как в « Стеки композиций в стиле AOP Mixin в Scala » от Jonas Bonér).
Но я знаю только " AOP на основе прокси-метода в Scala " (Даниэль Спивак - также здесь, на SO - и Тянь Чжао) как продвинутыйРеализация AOP в Scala ( исходный код здесь ).
В нашей технике используются функции высшего порядка Scala для перехвата вызовов методов с минимальными синтаксическими издержками, накладываемыми на базовую программу. Эта структура позволяет разработчикам определять pointcuts, определяя типы классов и сигнатуры методов.Структура также обеспечивает доступ к переменным контекста, в то время как аспекты могут вставлять код рекомендации до или после рекомендованного органа.
У нас не было проблем с использованием Spring AOP с нашими классами Scala.Хотя он не вносит никаких изменений в байт-код (только прокси).