Время компиляции с использованием Cache Abstraction in Spring
В настоящее время я использую кэш-абстракцию с использованием прокси. Проблема с прокси в том, что внутренние вызовы методов не работают. Теперь я хочу использовать ткачество времени компиляции вместо прокси, поскольку внутренние вызовы методов работают. Я искал в Google, но я не нашел какой-либо существенной ссылки, которая объясняет, как использовать ткачество времени компиляции. Есть много ссылок для ткачества времени загрузки. Может кто-нибудь привести какой-нибудь пример для плетения времени компиляции с абстракцией кеша или какой-нибудь соответствующей ссылкой??
Заранее спасибо.
1 ответ
Вы можете добавить аспект Spring для кэширования, используя плагин maven aspectj, идентифицируя класс аспекта и применяя его вручную к нужным классам (проверьте в аспектах Spring-аспекты и Spring-cache для аспекта).
Этот механизм не связан напрямую с пружиной, это может быть сделано с любым аспектом, а не только с аспектами весны.
Причина, по которой он не используется, заключается в том, что он не очень удобен, потому что нам нужно знать классы, которые мы хотим посоветовать во время компиляции, и не можем полагаться на механизм сканирования весенних аннотаций.
Переплетение времени загрузки решает проблему, о которой вы упомянули, - сделать так, чтобы повторяющиеся вызовы работали более прозрачно, без неудобств переплетения времени компиляции. Плетение по времени загрузки - это рекомендуемый способ использования пружин для ткачества aspectJ, включаемый аннотацией. @EnableLoadTimeWeaving
,
Для конкретного случая использования, который вы упомянули, не представляется хорошим вариантом для введения ткачества во время компиляции, в общем, нет хорошего варианта использования для ткачества во время компиляции, что объясняет отсутствие документации, доступной онлайн.
Я полагаю, что лучшим вариантом для упомянутого вами варианта использования будет использование ткачества времени загрузки.