Подтвердить что ты не робот

Могу ли я выполнять ориентированное на аспектное программирование в Scala?

Я не говорю о том, чтобы имитировать функции AOP в Scala (т.е. используя Traits вместо Apects), мне интересно, возможно ли сделать истинную AOP в Scala (т.е. советы, аспекты, совлокальные точки, плетение и т.д.)

4b9b3361

Ответ 1

Mixin был классическим способом введения AOP в Scala (как в AOP-Style Mixin Composition Stacks в Scala "от Джонаса Бонера".

Но я знаю только " Метод AOP на основе прокси-сервера в Scala" (Daniel Spiewak - также здесь, на SO - и Tian Zhao) в качестве расширенной реализации AOP в Scala ( исходный код здесь).

В нашей технике используются функции более высокого порядка Scala для перехвата вызовов методов с минимальными синтаксическими накладными расходами, наложенными на базовую программу.
Эта структура позволяет разработчикам определять pointcuts, задавая типы классов и сигнатуры методов. Структура также позволяет получить доступ к контекстным переменным, в то время как аспекты могут вставлять код совета до или после консультативного органа.

Ответ 2

У нас не было проблем с использованием Spring АОП с нашими классами Scala. Он не делает никаких модификаций байткода (только проксирование).