Я работаю над проектом интеграции с Spring и хочу реализовать аналитику. Основная идея заключается в том, чтобы захватить имя метода, временную метку и количество раз, вызываемых во всех шлюзах.Как реализовать аналитику в проекте интеграции весны?
Есть ли какой-либо пакет/класс по умолчанию для регистрации этих данных?
Вот что я думал, что делать, и нужно предложение, прежде чем продолжить
Шаг 1: Добавить имя метода притолока метод
<int:gateway id="gateway" service-interface="org.pro.gateway.SampleGateway">
<int:method name="method1" request-channel="request.input.channel" reply-channel="reply.output.channel">
<int:header name="methodName" value="placeOrder"/>
</int:method>
</int:gateway>
Шаг 2: Добавить перехватчик перехвата пружины, применить шаблон, который соответствует только входному каналу. Получите заголовок сообщения по имени в канале прослушивания и запишите его.
<int:wire-tap channel="wiretapChannel" pattern="input*" />
<int:service-activator ref="analyticsBean" method="footprint" input-channel="wiretapChannel" output-channel="outputChannel"/>
<bean id="analyticsBean" class="org.pro.stat.AnalyticService"/>
Шаг 3: код реализации
public class AnalyticsService {
public void footprint(Message<String> msg){
String methodName = msg.getHeaders().get("methodName");
long timestamp = msg.getHeaders().getTimestamp();
/* Send to some service/store it in file with incremented value */
storeIt(methodName, timestamp);
}}
да .. его хорошее предложение. я буду использовать @Async –