Java 单个@Repository与多个@Repository-S3和elasticsearch

Java 单个@Repository与多个@Repository-S3和elasticsearch,java,spring,Java,Spring,我正在编写一个文档存储库应用程序,它通过文件系统上的文件夹接收word文档,并将它们存储在AmazonS3中。目前我有一个@服务和一个@存储库,如下所示: @Service public class DocumentService { @Autowired DocumentRepository documentRepository; public void storeDocument(Document document) { documentRepo

我正在编写一个文档存储库应用程序,它通过文件系统上的文件夹接收word文档,并将它们存储在AmazonS3中。目前我有一个
@服务
和一个
@存储库
,如下所示:

@Service
public class DocumentService {

    @Autowired
    DocumentRepository documentRepository;

    public void storeDocument(Document document) {

        documentRepository.store(document);
    }

    public Document retrieveDocument(String id) {

        return documentRepository.retrieve(id);
    }
}

@Repository
public class DocumentRepository {

    @Autowired
    AmazonS3Client amazonS3Client;

    public void store(Document document) {

        amazonS3Client.putObject("word-bucket", document.getId(), document.getFile());
    }

    public Document retrieve(String id) {

        S3Object s3Object = amazonS3Client.getObject(new GetObjectRequest("word-bucket", id));

        Document document = new Document(id, s3Object.getObjectContent());

        return document;
    }
}
我必须扩展应用程序,以便在遇到新文档时,通过elasticsearch对文本体进行索引。似乎我有两个选择来实现这一点:

  • 扩展现有的DocumentRepository,以便与S3和elastic search通信
  • 创建一个名为DocumentIndex的新存储库,并使DocumentService同时调用documentRepository.store和DocumentIndex.index
  • 存储库的概念是将其与单个“存储”相关联,例如数据库、文件系统吗?如果是这样的话,那么第二种选择似乎是最合适的

    提前感谢您的指点