diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/ArchiveManagerConfiguration.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/ArchiveManagerConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..debcdff08821b4ca35010f590e12d415fffbf677
--- /dev/null
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/ArchiveManagerConfiguration.java
@@ -0,0 +1,29 @@
+package de.ozgcloud.archive;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class ArchiveManagerConfiguration { //NOSONAR
+
+	public static final String VORGANG_REMOTE_MANAGER_SERVICE_NAME = "archive_VorgangRemoteService";
+	public static final String VORGANG_WITH_EINGANG_MAPPER_NAME = "archive_VorgangWithEingangMapper";
+
+	public static final String DOCUMENT_MAPPER_NAME = "archive_DocumentMapper";
+
+	public static final String USER_SERVICE_NAME = "archive_UserService";
+	public static final String USER_PROFILE_MAPPER_NAME = "archive_UserProfileMapper";
+	public static final String OZGCLOUD_USER_PROFILE_SERVICE_NAME = "archive_OzgCloudUserProfileService";
+
+	public static final String COMMAND_SERVICE_NAME = "archive_CommandService";
+	public static final String COMMAND_REMOTE_SERVICE_NAME = "archive_CommandRemoteService";
+	public static final String COMMAND_MAPPER_NAME = "archive_CommandMapper";
+
+	public static final String BINARY_FILE_SERVICE_NAME = "archive_BinaryFileService";
+	public static final String BINARY_FILE_REMOTE_SERVICE_NAME = "archive_BinaryFileRemoteService";
+
+	public static final String FILE_ID_MAPPER_NAME = "archive_FileIdMapper";
+
+	public static final String BESCHEID_REMOTE_SERVICE_NAME = "archive_BescheidRemoteService";
+	public static final String BESCHEID_MAPPER_NAME = "archive_BescheidMapper";
+
+}
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/OzgcloudConfiguration.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/OzgcloudConfiguration.java
index f8f8911259c6ca417b17249c3846215d6f441645..b5210709ed4f0ef25009246f8bcacd0fa4c3d41b 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/OzgcloudConfiguration.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/OzgcloudConfiguration.java
@@ -1,6 +1,5 @@
 package de.ozgcloud.archive;
 
-import org.mapstruct.factory.Mappers;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
@@ -11,13 +10,10 @@ import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider;
 import de.ozgcloud.apilib.file.grpc.GrpcOzgCloudFileService;
 import de.ozgcloud.apilib.file.grpc.OzgCloudFileMapper;
 import de.ozgcloud.apilib.user.GrpcOzgCloudUserProfileService;
+import de.ozgcloud.apilib.user.OzgCloudUserProfileService;
 import de.ozgcloud.apilib.user.UserProfileMapper;
-import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper;
-import de.ozgcloud.apilib.vorgang.OzgCloudVorgangService;
-import de.ozgcloud.apilib.vorgang.grpc.GrpcOzgCloudVorgangService;
-import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangMapper;
-import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangStubMapper;
 import de.ozgcloud.archive.common.GrpcUtil;
+import de.ozgcloud.archive.common.callcontext.CallContextProvider;
 import de.ozgcloud.user.grpc.userprofile.UserProfileServiceGrpc.UserProfileServiceBlockingStub;
 import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc.BinaryFileServiceBlockingStub;
 import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc.BinaryFileServiceStub;
@@ -45,48 +41,14 @@ class OzgcloudConfiguration {
 		return new DefaultOzgCloudCallContextProvider(ctxt);
 	}
 
-	OzgCloudVorgangService grpcOzgCloudVorgangService(OzgCloudVorgangMapper mapper, OzgCloudVorgangStubMapper stubMapper,
-			OzgCloudCallContextProvider contextProvider) {
-
-		return new GrpcOzgCloudVorgangService(vorgangServiceStub, mapper, stubMapper, contextProvider);
-	}
-
-	@Bean
-	OzgCloudVorgangMapper ozgCloudVorgangMapper() {
-		return Mappers.getMapper(OzgCloudVorgangMapper.class);
-	}
-
-	@Bean
-	OzgCloudVorgangStubMapper ozgCloudVorgangStubMapper() {
-		return Mappers.getMapper(OzgCloudVorgangStubMapper.class);
-	}
-
-	@Bean
-	OzgCloudVorgangIdMapper ozgCloudVorgangIdMapper() {
-		return Mappers.getMapper(OzgCloudVorgangIdMapper.class);
-	}
-
-	@Bean
-	UserProfileMapper ozgCloudUserProfileMapper() {
-		return Mappers.getMapper(UserProfileMapper.class);
-	}
-
-	@Bean
-	OzgCloudFileMapper fileMapper() {
-		return Mappers.getMapper(OzgCloudFileMapper.class);
-	}
-
 	@Bean
 	GrpcOzgCloudFileService grpcOzgCloudFileService(OzgCloudCallContextProvider contextProvider, OzgCloudFileMapper mapper) {
 
 		return new GrpcOzgCloudFileService(binaryFileServiceBlockingStub, binaryFileServiceStub, contextProvider, mapper);
 	}
 
-	@Bean
-	GrpcOzgCloudUserProfileService grpcOzgCloudUserProfileService(OzgCloudCallContextProvider ozgCloudCallContextProvider,
-			UserProfileMapper userProfileMapper) {
-		return new GrpcOzgCloudUserProfileService(userProfileServiceBlockingStub,
-				userProfileMapper, ozgCloudCallContextProvider);
+	@Bean(ArchiveManagerConfiguration.OZGCLOUD_USER_PROFILE_SERVICE_NAME) // NOSONAR
+	OzgCloudUserProfileService grpcOzgCloudUserProfileService(CallContextProvider ozgCloudCallContextProvider, UserProfileMapper userProfileMapper) {
+		return new GrpcOzgCloudUserProfileService(userProfileServiceBlockingStub, userProfileMapper, ozgCloudCallContextProvider);
 	}
-
 }
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidMapper.java
index 60b5fc34a1b8b3009c3dc6c46389366be6e041a5..8c5e1b98f1010cd47664cbb407be3f8a36fe7ec1 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidMapper.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidMapper.java
@@ -2,18 +2,22 @@ package de.ozgcloud.archive.bescheid;
 
 import java.util.List;
 
+import org.mapstruct.AnnotateWith;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.NullValueCheckStrategy;
 import org.mapstruct.ReportingPolicy;
+import org.springframework.stereotype.Component;
 
 import com.google.protobuf.ProtocolStringList;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.archive.common.binaryfile.FileIdMapper;
 import de.ozgcloud.bescheid.GrpcBescheid;
 import de.ozgcloud.common.binaryfile.FileId;
 
 @Mapper(unmappedTargetPolicy = ReportingPolicy.ERROR, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, uses = { FileIdMapper.class })
+@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.BESCHEID_MAPPER_NAME))
 interface BescheidMapper {
 
 	@Mapping(target = "attachments", source = "grpcBescheid.attachmentsList")
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidRemoteService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidRemoteService.java
index 836d5ed419e05fa98772b33c20e5f3878f7e3e77..30440017204f2c57bf27bc6e3a79c1e49083be99 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidRemoteService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidRemoteService.java
@@ -3,19 +3,23 @@ package de.ozgcloud.archive.bescheid;
 import java.util.stream.Stream;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.archive.common.GrpcUtil;
 import de.ozgcloud.bescheid.BescheidServiceGrpc.BescheidServiceBlockingStub;
 import de.ozgcloud.bescheid.GrpcGetAllBescheidRequest;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
-@Service
+@Service(ArchiveManagerConfiguration.BESCHEID_REMOTE_SERVICE_NAME) // NOSONAR
 class BescheidRemoteService {
 
 	@GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT)
 	private BescheidServiceBlockingStub grpcService;
+
 	@Autowired
+	@Qualifier(ArchiveManagerConfiguration.BESCHEID_MAPPER_NAME) // NOSONAR
 	private BescheidMapper bescheidMapper;
 
 	public Stream<Bescheid> findByVorgangId(String vorgangId) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentMapper.java
index e48cefc627605e509da11ecfe694c6a1c5dbea2f..f156089e90ec8c830d052a826afb5af92539d244 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentMapper.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentMapper.java
@@ -1,13 +1,17 @@
 package de.ozgcloud.archive.bescheid;
 
+import org.mapstruct.AnnotateWith;
 import org.mapstruct.Mapper;
 import org.mapstruct.NullValueCheckStrategy;
 import org.mapstruct.ReportingPolicy;
+import org.springframework.stereotype.Component;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.common.binaryfile.FileId;
 import de.ozgcloud.document.GrpcDocument;
 
 @Mapper(unmappedTargetPolicy = ReportingPolicy.ERROR, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.DOCUMENT_MAPPER_NAME))
 interface DocumentMapper {
 
 	default FileId fromGrpc(GrpcDocument grpcDocument) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentRemoteService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentRemoteService.java
index 972e0547dd82f0f5f97aff1eff06c1f801638c86..77e62802086c1d86facff5292dac322567e0df5f 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentRemoteService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentRemoteService.java
@@ -1,8 +1,10 @@
 package de.ozgcloud.archive.bescheid;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.archive.common.GrpcUtil;
 import de.ozgcloud.common.binaryfile.FileId;
 import de.ozgcloud.document.DocumentServiceGrpc.DocumentServiceBlockingStub;
@@ -15,6 +17,7 @@ class DocumentRemoteService {
 	@GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT)
 	private DocumentServiceBlockingStub grpcService;
 	@Autowired
+	@Qualifier(ArchiveManagerConfiguration.DOCUMENT_MAPPER_NAME) // NOSONAR
 	private DocumentMapper documentMapper;
 
 	public FileId getDocument(String documentId) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java
index b6cf60259b07f3d794ec03cee91c01d487424b7b..7fe61a04059da950ac3cd7950cc0f8854ed4dc3b 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java
@@ -2,8 +2,10 @@ package de.ozgcloud.archive.bescheid;
 
 import java.util.stream.Stream;
 
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.archive.common.binaryfile.BinaryFileService;
 import de.ozgcloud.archive.common.user.UserService;
 import de.ozgcloud.archive.file.OzgFile;
@@ -15,9 +17,15 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor
 public class ExportBescheidService {
 
+	@Qualifier(ArchiveManagerConfiguration.BESCHEID_REMOTE_SERVICE_NAME) // NOSONAR
 	private final BescheidRemoteService bescheidRemoteService;
+
+	@Qualifier(ArchiveManagerConfiguration.BINARY_FILE_SERVICE_NAME) // NOSONAR
 	private final BinaryFileService binaryFileService;
+
 	private final DocumentRemoteService documentRemoteService;
+
+	@Qualifier(ArchiveManagerConfiguration.USER_SERVICE_NAME) // NOSONAR
 	private final UserService userService;
 
 	public BescheidExportData createExportData(VorgangWithEingang vorgang) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileRemoteService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileRemoteService.java
index e6452d7f0beb113bcc137754346944bc3b06f1b9..11c53d93fe3bf9a89c6feea096ca523edf2e6621 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileRemoteService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileRemoteService.java
@@ -5,9 +5,11 @@ import java.util.List;
 import java.util.stream.Stream;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.apilib.file.grpc.GrpcOzgCloudFileService;
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.archive.common.GrpcUtil;
 import de.ozgcloud.archive.file.OzgFile;
 import de.ozgcloud.archive.file.OzgFileMapper;
@@ -17,7 +19,7 @@ import de.ozgcloud.vorgang.grpc.binaryFile.GrpcBinaryFilesRequest;
 import de.ozgcloud.vorgang.grpc.binaryFile.GrpcFindFilesResponse;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
-@Service
+@Service(ArchiveManagerConfiguration.BINARY_FILE_REMOTE_SERVICE_NAME) // NOSONAR
 class BinaryFileRemoteService {
 
 	@GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT)
@@ -26,7 +28,9 @@ class BinaryFileRemoteService {
 	private GrpcOzgCloudFileService grpcOzgCloudFileService;
 	@Autowired
 	private OzgFileMapper ozgFileMapper;
+
 	@Autowired
+	@Qualifier(ArchiveManagerConfiguration.FILE_ID_MAPPER_NAME) // NOSONAR
 	private FileIdMapper fileIdMapper;
 
 	public Stream<OzgFile> getFiles(List<FileId> fileIds) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileService.java
index a9335b474e56a7510cc5cf71aebd76a43e390d25..271e9c1c70a2de0918889af908db8b92fdb320cf 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileService.java
@@ -4,16 +4,19 @@ import java.io.OutputStream;
 import java.util.List;
 import java.util.stream.Stream;
 
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.archive.file.OzgFile;
 import de.ozgcloud.common.binaryfile.FileId;
 import lombok.RequiredArgsConstructor;
 
-@Service
+@Service(ArchiveManagerConfiguration.BINARY_FILE_SERVICE_NAME) // NOSONAR
 @RequiredArgsConstructor
 public class BinaryFileService {
 
+	@Qualifier(ArchiveManagerConfiguration.BINARY_FILE_REMOTE_SERVICE_NAME) // NOSONAR
 	private final BinaryFileRemoteService binaryFileRemoteService;
 
 	public Stream<OzgFile> getFiles(List<FileId> attachments) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/FileIdMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/FileIdMapper.java
index 35203269ca4d2779a19201f19ef0b74580079a7c..8e316d2da813f4be399f25b889e9f5d543d834da 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/FileIdMapper.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/FileIdMapper.java
@@ -1,11 +1,15 @@
 package de.ozgcloud.archive.common.binaryfile;
 
+import org.mapstruct.AnnotateWith;
 import org.mapstruct.Mapper;
+import org.springframework.stereotype.Component;
 
 import de.ozgcloud.apilib.file.OzgCloudFileId;
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.common.binaryfile.FileId;
 
 @Mapper
+@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.FILE_ID_MAPPER_NAME))
 public interface FileIdMapper {
 
 	default FileId fromString(String fileId) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandMapper.java
index 9dd19f67fa441a11ac9bf6d39ddac343f20ad695..83b566525aea12ba40f79f621d0a408e38cc39b0 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandMapper.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandMapper.java
@@ -3,14 +3,18 @@ package de.ozgcloud.archive.common.command;
 import java.time.ZonedDateTime;
 
 import org.apache.commons.lang3.StringUtils;
+import org.mapstruct.AnnotateWith;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.NullValueCheckStrategy;
+import org.springframework.stereotype.Component;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.vorgang.common.grpc.GrpcObjectMapper;
 import de.ozgcloud.vorgang.grpc.command.GrpcCommand;
 
 @Mapper(uses = { GrpcObjectMapper.class }, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.COMMAND_MAPPER_NAME))
 interface CommandMapper {
 
 	@Mapping(target = "body", source = "bodyObj")
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandRemoteService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandRemoteService.java
index bbdd3d2301c2e1978e183276d6712b12c65aed2a..7696eb1d92ccacc7a3341afd299c8c2083032abe 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandRemoteService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandRemoteService.java
@@ -4,19 +4,22 @@ import java.util.Optional;
 import java.util.stream.Stream;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.archive.common.GrpcUtil;
 import de.ozgcloud.vorgang.grpc.command.CommandServiceGrpc.CommandServiceBlockingStub;
 import de.ozgcloud.vorgang.grpc.command.GrpcFindCommandsRequest;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
-@Service
+@Service(ArchiveManagerConfiguration.COMMAND_REMOTE_SERVICE_NAME) // NOSONAR
 class CommandRemoteService {
 
 	@GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT)
 	private CommandServiceBlockingStub grpcService;
 	@Autowired
+	@Qualifier(ArchiveManagerConfiguration.COMMAND_MAPPER_NAME) // NOSONAR
 	private CommandMapper mapper;
 
 	public Stream<Command> findCommands(String vorgangId, Optional<String> status, Optional<String> order) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandService.java
index cac214b9dd992251bf1b35b80cf92cdb125842a1..5f8c5ec4100915c6ce187fa873759ccf356a4e37 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandService.java
@@ -3,15 +3,18 @@ package de.ozgcloud.archive.common.command;
 import java.util.Optional;
 import java.util.stream.Stream;
 
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
 
-@Service
+@Service(ArchiveManagerConfiguration.COMMAND_SERVICE_NAME) // NOSONAR
 @RequiredArgsConstructor
 public class CommandService {
 
+	@Qualifier(ArchiveManagerConfiguration.COMMAND_REMOTE_SERVICE_NAME) // NOSONAR
 	private final CommandRemoteService remoteService;
 
 	public Stream<Command> findFinishedCommands(@NonNull String vorgangId) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserProfileMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserProfileMapper.java
index 021d0c5fb750996333628635f706a1e8ced53610..91feb820adf2cb8374c013661b4ef590154298f9 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserProfileMapper.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserProfileMapper.java
@@ -1,10 +1,14 @@
 package de.ozgcloud.archive.common.user;
 
+import org.mapstruct.AnnotateWith;
 import org.mapstruct.Mapper;
+import org.springframework.stereotype.Component;
 
 import de.ozgcloud.apilib.user.OzgCloudUserProfile;
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 
 @Mapper
+@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.USER_PROFILE_MAPPER_NAME))
 public interface UserProfileMapper {
 
 	UserProfile fromOzgUserProfile(OzgCloudUserProfile userProfile);
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java
index 96ecad321286e0f6078a8682c6dfd21adb32c2bd..a1748976b9fc32dbc5544b090722cad3484b0117 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java
@@ -1,16 +1,21 @@
 package de.ozgcloud.archive.common.user;
 
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
-import de.ozgcloud.apilib.user.GrpcOzgCloudUserProfileService;
 import de.ozgcloud.apilib.user.OzgCloudUserId;
+import de.ozgcloud.apilib.user.OzgCloudUserProfileService;
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import lombok.RequiredArgsConstructor;
 
-@Service
+@Service(ArchiveManagerConfiguration.USER_SERVICE_NAME) // NOSONAR
 @RequiredArgsConstructor
 public class UserService {
 
-	private final GrpcOzgCloudUserProfileService grpcOzgCloudUserProfileService;
+	@Qualifier(ArchiveManagerConfiguration.OZGCLOUD_USER_PROFILE_SERVICE_NAME) // NOSONAR
+	private final OzgCloudUserProfileService grpcOzgCloudUserProfileService;
+
+	@Qualifier(ArchiveManagerConfiguration.USER_PROFILE_MAPPER_NAME) // NOSONAR
 	private final UserProfileMapper mapper;
 
 	public UserProfile getById(String sentBy) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/VorgangChangeHistoryService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/VorgangChangeHistoryService.java
index a4f2056a142d6954e76043ad98cbdac17ddb58e0..1dba7b76084bf1e738dd9e3f970f53567255cb89 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/VorgangChangeHistoryService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/VorgangChangeHistoryService.java
@@ -3,8 +3,10 @@ package de.ozgcloud.archive.historie;
 import java.util.List;
 import java.util.stream.Stream;
 
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.archive.common.command.Command;
 import de.ozgcloud.archive.common.command.CommandService;
 import de.ozgcloud.archive.common.user.UserService;
@@ -15,7 +17,10 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor
 class VorgangChangeHistoryService {
 
+	@Qualifier(ArchiveManagerConfiguration.USER_SERVICE_NAME) // NOSONAR
 	private final UserService userService;
+
+	@Qualifier(ArchiveManagerConfiguration.COMMAND_SERVICE_NAME) // NOSONAR
 	private final CommandService commandService;
 
 	public VorgangChangeHistory createVorgangChangeHistory(VorgangWithEingang vorgang) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java
index accb342aacd5b633133627785be7c5c820be1476..4790c966b921543e3982778cf65bf7e35b712699 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java
@@ -3,8 +3,10 @@ package de.ozgcloud.archive.kommentar;
 import java.util.List;
 import java.util.stream.Stream;
 
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.archive.common.binaryfile.BinaryFileService;
 import de.ozgcloud.archive.common.user.UserService;
 import de.ozgcloud.archive.file.OzgFile;
@@ -18,6 +20,7 @@ public class ExportKommentarService {
 
 	private final KommentarRemoteService kommentarRemoteService;
 	private final BinaryFileService binaryFileService;
+	@Qualifier(ArchiveManagerConfiguration.USER_SERVICE_NAME) // NOSONAR
 	private final UserService userService;
 
 	public KommentarsExportData createExportData(VorgangWithEingang vorgang) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java
index 921ce63725a43ccc51eeaa8572dd55f2588f9860..f669cd73aac394bfa47e38306119d8b293ab0ab5 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java
@@ -4,8 +4,10 @@ import java.util.List;
 import java.util.Optional;
 import java.util.stream.Stream;
 
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.archive.common.binaryfile.BinaryFileService;
 import de.ozgcloud.archive.common.user.UserProfile;
 import de.ozgcloud.archive.common.user.UserService;
@@ -18,8 +20,10 @@ import lombok.RequiredArgsConstructor;
 @Service
 @RequiredArgsConstructor
 public class ExportNachrichtService {
+
 	private final PostfachMailRemoteService postfachMailRemoteService;
 	private final BinaryFileService binaryFileService;
+	@Qualifier(ArchiveManagerConfiguration.USER_SERVICE_NAME) // NOSONAR
 	private final UserService userService;
 
 	public PostfachMailExportData createExportData(VorgangWithEingang vorgang) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/ExportVorgangService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/ExportVorgangService.java
index 94bf1f2e3592f7680892304c29473175a5bd3b45..4e3644613b0233d654d652afae09ef2c69cbaa84 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/ExportVorgangService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/ExportVorgangService.java
@@ -4,8 +4,10 @@ import java.util.Optional;
 import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.xoev.xdomea.AkteType;
 import de.xoev.xdomea.AllgemeineMetadatenType;
 import de.xoev.xdomea.IdentifikationObjektType;
@@ -17,6 +19,7 @@ import lombok.RequiredArgsConstructor;
 @Service
 public class ExportVorgangService {
 
+	@Qualifier(ArchiveManagerConfiguration.VORGANG_REMOTE_MANAGER_SERVICE_NAME) // NOSONAR
 	private final VorgangRemoteService vorgangRemoteService;
 
 	private final VorgangTypeCreator vorgangTypeCreator;
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangRemoteService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangRemoteService.java
index fa8d901afbedc5fb90f5b5732400ede14850cabf..aa56369097249ef16bb52967589c56a003616016 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangRemoteService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangRemoteService.java
@@ -1,24 +1,27 @@
 package de.ozgcloud.archive.vorgang;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextAttachingInterceptor;
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.archive.common.GrpcUtil;
 import de.ozgcloud.archive.common.callcontext.CallContextProvider;
 import de.ozgcloud.vorgang.vorgang.GrpcFindVorgangWithEingangRequest;
 import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub;
-import lombok.RequiredArgsConstructor;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
-@Service
-@RequiredArgsConstructor
+@Service(ArchiveManagerConfiguration.VORGANG_REMOTE_MANAGER_SERVICE_NAME) // NOSONAR
 class VorgangRemoteService {
 
 	@GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT)
 	private VorgangServiceBlockingStub grpcService;
+
 	@Autowired
+	@Qualifier(ArchiveManagerConfiguration.VORGANG_WITH_EINGANG_MAPPER_NAME) // NOSONAR
 	private VorgangWithEingangMapper vorgangWithEingangMapper;
+
 	@Autowired
 	private CallContextProvider contextProvider;
 
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangWithEingangMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangWithEingangMapper.java
index 44593e079f978376aefa021c73d153e673ad79ff..db23db6c1b8793a2f9daa000e151fc1fc0d7b860 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangWithEingangMapper.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangWithEingangMapper.java
@@ -1,11 +1,15 @@
 package de.ozgcloud.archive.vorgang;
 
+import org.mapstruct.AnnotateWith;
 import org.mapstruct.Mapper;
+import org.springframework.stereotype.Component;
 
+import de.ozgcloud.archive.ArchiveManagerConfiguration;
 import de.ozgcloud.vorgang.common.grpc.GrpcFormDataMapper;
 import de.ozgcloud.vorgang.vorgang.GrpcVorgangWithEingang;
 
 @Mapper(uses = GrpcFormDataMapper.class)
+@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.VORGANG_WITH_EINGANG_MAPPER_NAME))
 interface VorgangWithEingangMapper {
 
 	VorgangWithEingang fromGrpc(GrpcVorgangWithEingang grpcVorgangWithEingang);
diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerTestConfiguration.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerTestConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..91039e8de21affd0dccbd763b953db575cdcf987
--- /dev/null
+++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerTestConfiguration.java
@@ -0,0 +1,41 @@
+package de.ozgcloud.archive;
+
+import org.mapstruct.factory.Mappers;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import de.ozgcloud.apilib.file.grpc.OzgCloudFileMapper;
+import de.ozgcloud.apilib.user.UserProfileMapper;
+import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper;
+import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangMapper;
+import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangStubMapper;
+
+@Configuration
+public class ArchiveManagerTestConfiguration {
+
+	@Bean
+	OzgCloudVorgangMapper ozgCloudVorgangMapper() {
+		return Mappers.getMapper(OzgCloudVorgangMapper.class);
+	}
+
+	@Bean
+	OzgCloudVorgangStubMapper ozgCloudVorgangStubMapper() {
+		return Mappers.getMapper(OzgCloudVorgangStubMapper.class);
+	}
+
+	@Bean
+	OzgCloudVorgangIdMapper ozgCloudVorgangIdMapper() {
+		return Mappers.getMapper(OzgCloudVorgangIdMapper.class);
+	}
+
+	@Bean
+	UserProfileMapper ozgCloudUserProfileMapper() {
+		return Mappers.getMapper(UserProfileMapper.class);
+	}
+
+	@Bean
+	OzgCloudFileMapper fileMapper() {
+		return Mappers.getMapper(OzgCloudFileMapper.class);
+	}
+
+}
diff --git a/lombok.config b/lombok.config
index 81661f0fd9c5f6e2f40f39aa9ee13f7017fc2726..a0e918012b6da2b2cd06374cf7ac35d085bfa3e0 100644
--- a/lombok.config
+++ b/lombok.config
@@ -27,4 +27,5 @@ lombok.log.slf4j.flagUsage = ERROR
 lombok.log.log4j.flagUsage = ERROR
 lombok.data.flagUsage = ERROR
 lombok.nonNull.exceptionType = IllegalArgumentException
-lombok.addLombokGeneratedAnnotation = true
\ No newline at end of file
+lombok.addLombokGeneratedAnnotation = true
+lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier
\ No newline at end of file