@Override
public Object handle(CommandMessage<Object> command, UnitOfWork unitOfWork) throws Throwable {
try {
final MethodMessageHandler handler = handlers.get(command.getCommandName());
if (handler == null) {
throw new NoHandlerForCommandException("No handler found for command " + command.getCommandName());
}
if (unitOfWork != null) {
unitOfWork.attachResource(ParameterResolverFactory.class.getName(), parameterResolverFactory);
}
return handler.invoke(target, command);