Размещение репозитория IMP в не базовую упаковку

StackOverflow https://stackoverflow.com/questions/7300794

  •  22-10-2019
  •  | 
  •  

Вопрос

Я не отделяю свою пользовательскую реализацию репозитория от пакета домена. И, вероятно, некоторые общие интерфейсы. Например, я хочу иметь структуру, подобную

  com
       domain
            Foo
            FooRepository
       common
            Bar
       persistence
            BarImpl

interface FooRepository extends Bar{}

<jpa:repositories base-package="com.domain" /> // smt else?

Как я должен это настроить?

Это было полезно?

Решение

Автоматический запас класса репозитория работает только в том случае, если вы размещаете его в тот же пакет и используете либо пост -режим по умолчанию, либо определите суффикс для использования вручную. Итак, в вашем сценарии вам придется поместить FooRepositoryImpl в domain упаковка. Вы можете настроить суффикс, используя repository-impl-postfix атрибут. Если вы хотите поместить реализацию в другой пакет, вы можете объявить о пользовательской программе реализации вручную, используя fooRepositoryImpl как идентификатор бобов. Затем класс может проживать в любом пакете, который вы хотите.

Я предполагаю, что Bar это интерфейс, содержащий индивидуальные объявления метода. На самом деле мы рекомендуем поместить как пользовательский интерфейс репозитория, так и реализацию в тот же пакет и сделать его пакетом защищенным, чтобы он не был доступен для клиентов индивидуально. Таким образом, все клиенты, которые действительно видят, - это единый интерфейс репозитория, содержащий методы запросов и вручную реализованные.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top