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

时间:2016-02-26 16:15:06

标签: java spring

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

@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索引。看起来我有两个选择来实现这个目标:

  1. 扩展现有的DocumentRepository,使其与S3和弹性搜索进行通信
  2. 创建一个名为DocumentIndex的新存储库,并使DocumentService调用documentRepository.store和documentIndex.index
  3. 存储库的想法是将其与单个“商店”相关联,例如数据库,文件系统?如果是这样,那么第二个选项似乎是最合适的。

    提前感谢任何指示。

0 个答案:

没有答案
相关问题