Scala, Spring и ActiveRecord с разделенной сохраняемостью

#java #spring #scala #activerecord #anemic-domain-model

#java #spring #scala #activerecord #анемичная доменная модель

Вопрос:

В последнее время я немного читал, и одна вещь, с которой я столкнулся, была эта статья о модели Anaemic Domain от Мартина Фаулера . Я знаю, это старое, но почему-то очень актуально в мире Java. Итак, я пытаюсь перейти к более предметно-ориентированному дизайну. Одним из вариантов было бы использовать модель активной записи. Однако мне не очень нравится текущая реализация, которую он имеет в Scala. Он полностью связывает объекты домена с типом сохраняемости (в большинстве случаев не так уж плохо, но у меня есть проект, в котором мне нужно что-то хранить как в RDB, так и в Mongo). Затем я наткнулся на эту статью о Spring, Hibernate и Scala, и хотя здесь тоже объект домена связан с чертой JPA, я заметил, как он использует Spring для внедрения службы уведомлений. Разве нельзя использовать тот же механизм для внедрения прозрачного интерфейса DAO? Вы видели, чтобы это где-нибудь использовалось? Есть мысли по поводу идеи?

Комментарии:

1. в чем именно заключается проблема, которую вы пытаетесь решить? Вам нужно внедрить репозиторий / DAO в объект домена, поскольку он извлекается из базы данных?

2. @tolitius Да, это основная идея. Но я ничего не пытаюсь решить. Предполагается, что это чисто академическое обсуждение, если это было бы хорошей идеей, если вы видели, как она использовалась, и если да, то где и с какой степенью успеха.

Ответ №1:

Вы должны взглянуть на Spring-Data, этот проект обеспечивает некоторую абстракцию над различными хранилищами данных.

Комментарии:

1. Разве Spring Data по своей конструкции не поддерживает анемичную модель предметной области?