2017-01-27 2 views
0

Мы анализируем различные концепции для одного из моих проектов. Мы решили использовать Spring Boot & Microservices архитектуры.Может ли использовать AOP Spring с Microservices & Spring Boot?

После дальнейших обсуждений мы пришли к запросу ли мы CAN/ДОЛЖНЫ использовать Spring AOP для решения Сквозных проблем различного microservices?

Если не, то как мы можем решить общие проблемы микросервисов, таких как ведение журнала, транзакция mgmt и т. Д.?

У меня широко распространена эта тема (даже на 5 страниц для такого же поиска), но не повезло. Любая помощь оценивается.

+0

Logging & транзакции управления являются общими во всех услугах, и я думаю, что они будут в большинстве услуг. – LazyTechie

ответ

1

Использовать пружинные перехватчики. У них есть перехватчики и фабрики практически для чего угодно. Позволяет добавлять инструменты и общий код ко всем аспектам.

ОБНОВЛЕНИЕ: образцы перехватчиков и заводов.

ClientHttpRequestInterceptor
FilterRegistrationBean
SimpleClientHttpRequestFactory
ChannelInterceptor

+0

Если у меня есть три проекта весенней загрузки в качестве микросервисов, есть ли способ использовать Spring AOP для общих проблем в этих независимых проектах? – LazyTechie

+0

Не нужно использовать AOP напрямую. Вместо этого используйте перехватчики и фабрики. Например, мы создаем общую банку, которая вводит в наши проекты фабрики и перехватчики. Нет необходимости в АОП. –

+0

Допустим, у вас есть требование выполнить некоторую проверку безопасности всех входящих HTTP-запросов. Затем вы можете использовать FilterRegistrationBean для добавления фильтра Servlet, который будет выполнять эту проверку безопасности. Напишите новый JAR, который имеет вашу реализацию Servlet Filter, и использует FilterRegistrationBean для добавления фильтра в ваш проект. Теперь ваш фильтр будет вызван при каждом входящем HTTP-запросе –

0

Я не думаю, что есть что беспокоиться об использовании АОП. Вот как весна обычно бывает под капотом.

Я просто буду осторожен с вызовами метода ведения журнала, особенно с параметрами, которые являются обычным использованием (злоупотреблением) АОП.

Усумленно, чем меньше кода вы пишете, тем лучше. Если вы можете использовать стандартный, проверенный способ делать вещи - используйте его.

+0

Если у меня есть три проекта весенней загрузки в качестве микросервисов, есть ли способ использовать Spring AOP для общих проблем в этих независимых проектах? – LazyTechie

+0

Большинство распространенных проблем Spring Boot будет обрабатывать себя. Или вы будете использовать библиотеку Javamelody. Конечно, вы всегда можете создать библиотеку и поделиться ею. Однако кажется, что вы сосредоточены на технологии слишком много rathr, чем на решении проблемы. AOP - это просто инструмент, такой как StringUtils. Первое, что вы пытаетесь решить. –

Смежные вопросы