Page 1 of 1

Können wir Enterprise Integration Pattern und hexagonale Architektur kombinieren?

Posted: 03 Jan 2025, 18:31
by Guest
Ich versuche zu verstehen, wie wir die hexagonale Architektur mit EIP verwenden würden.
Im Spring Boot-Beispiel, das ich unten habe, ist der UserMessageHandler (meiner Meinung nach) Teil des eingehenden Adapters und ruft eine Methode am eingehenden Port auf (InboundPortService)
Es scheint jedoch, dass der UserMessageHandler nichts Nützliches tut (Protokollierung, Datentransformation, Filterung usw., die ich durchführen muss). Dies kann im Integrationsfluss selbst geschehen, bevor der UserMessageHandler aufgerufen wird)
Ich wollte also Ideen bekommen, wie man das besser machen kann
TIA

Code: Select all

public class UserMessageHandler implements GenericHandler {
private final InboundPortService inboundPortService;
// all arg constructor here

@Override
public Object handle(User user, MessageHeaders headers) {
inboundPortService.processUser(user);
}
}

public interface InboundPortService {
User processUser(User user);
}

public class InboundPortServiceImpl implements InboundPortService {
public User processUser(User user){
// ...
}
}

public class Application {

@Bean
public IntegrationFlow userSyncFlow(UserMessageHandler userMessageHandler, SomeObjecToUserObjectTransformer someObjecToUserObjectTransformer) {
return IntegrationFlow
.from("userInfoChannel")
.log(DEBUG, m -> "Received userinfo: " + m.getPayload())
.transform(someObjecToUserObjectTransformer)
.handle(userMessageHandler)
.get();
}
}