разделить монго-конвертеры на несколько контекстных файлов? - PullRequest
1 голос
/ 20 января 2012

Это моя конфигурация:

    <org.springframework.version>3.1.0.RELEASE</org.springframework.version>
    <spring.data.mongo.version>1.0.0.RC1</spring.data.mongo.version>

Возможно ли разделить этот 1 весенний контекстный файл:

<mongo:mapping-converter base-package="my.package.converter">
    <mongo:custom-converters>
        <mongo:converter>
            <bean class="my.package.converter.ClassAbcReadConverter" />
        </mongo:converter>
        <mongo:converter>
            <bean class="my.package.converter.ClassAbcWriteConverter" />
        </mongo:converter>
        <mongo:converter>
            <bean class="my.package.converter.subpackage.ClassDefReadConverter" />
        </mongo:converter>
        <mongo:converter>
            <bean class="my.package.converter.subpackage.ClassDefWriteConverter" />
        </mongo:converter>
        <mongo:converter>
            <bean class="my.package.converter.subpackage.ClassGhiWriteConverter" />
        </mongo:converter>
        <mongo:converter>
            <bean class="my.package.converter.subpackage.ClassGhiReadConverter" />
        </mongo:converter>
    </mongo:custom-converters>
</mongo:mapping-converter>

в 2 файла контекста пружины (в разных модулях maven), как показано ниже?

file1-context.xml

<mongo:mapping-converter base-package="my.package.converter">
    <mongo:custom-converters>
        <mongo:converter>
            <bean class="my.package.converter.ClassAbcReadConverter" />
        </mongo:converter>
        <mongo:converter>
            <bean class="my.package.converter.ClassAbcWriteConverter" />
        </mongo:converter>
    </mongo:custom-converters>
</mongo:mapping-converter>

file2-context.xml

<mongo:mapping-converter base-package="my.package.converter">
    <mongo:custom-converters>
        <mongo:converter>
            <bean class="my.package.converter.subpackage.ClassDefReadConverter" />
        </mongo:converter>
        <mongo:converter>
            <bean class="my.package.converter.subpackage.ClassDefWriteConverter" />
        </mongo:converter>
        <mongo:converter>
            <bean class="my.package.converter.subpackage.ClassGhiWriteConverter" />
        </mongo:converter>
        <mongo:converter>
            <bean class="my.package.converter.subpackage.ClassGhiReadConverter" />
        </mongo:converter>
    </mongo:custom-converters>
</mongo:mapping-converter>

Есть ли полезные атрибуты для "слияния" для конвертеров монго?

Ответы [ 3 ]

4 голосов
/ 30 марта 2012

Элемент custom-converters на самом деле также имеет атрибут base-package, который инициирует сканирование перечисленных пакетов на предмет реализаций Converter и GenericConverter. Тот, который вы использовали на уровне mapping-converter, - это выбор классов домена при запуске. Так что все будет в порядке, просто удалив явно определенные компоненты-преобразователи и добавив дополнительный атрибут.

<mongo:mapping-converter base-package="my.package.entities">
  <mongo:custom-converters base-package="my.package.converters" />
</mongo:mapping-converter>
0 голосов
/ 16 декабря 2012
<mongo:mapping-converter base-package="my.package.entities">
  <mongo:custom-converters base-package="my.package.converters" />
</mongo:mapping-converter>

не будет работать в 1.1.0. ВЫПУСК.Если вы посмотрите на файл XSD, только mongo: mapping-converter и converter определяют base-package.Так что вам все еще нужно сделать это.

<mongo:mapping-converter base-package="my.package.entities">
    <mongo:custom-converters>
        <mongo:converter>
            <bean class="my.package.converters.DBObjectToDateTime" />
        </mongo:converter>
        <mongo:converter>
            <bean class="my.package.converters.DateTimeToDBObject" />
        </mongo:converter>
    </mongo:custom-converters>
</mongo:mapping-converter>

Я не пробовал, если:

<mongo:mapping-converter base-package="my.package.entities">
    <mongo:custom-converters>
        <mongo:converter base-package="my.package.converters.DBObjectToDateTime" />
    </mongo:custom-converters>
</mongo:mapping-converter>

зарегистрирует все конвертеры.Это, кажется, не имеет смысла, и предложение сопровождающих было бы лучше, если бы оно было реализовано правильно.

0 голосов
/ 03 апреля 2012

Я также сталкиваюсь с той же проблемой, если при настройке:

<mongo:mapping-converter>
    <mongo:custom-converters>
        <mongo:converter>
            <bean class="com.abc.converter.mongo.DBObjectToDateTime" />
        </mongo:converter>
        <mongo:converter>
            <bean class="com.abc.converter.mongo.DateTimeToDBObject" />
        </mongo:converter>
    </mongo:custom-converters>
</mongo:mapping-converter>

все работает нормально.при настройке как:

<mongo:mapping-converter base-package="com.abc.*.entities">
    <mongo:custom-converters base-package="com.abc.converter.mongo" />
</mongo:mapping-converter>

преобразователи не применяются.pagckage com.abc. *. entity имеет аннотированный класс @Document, а также аннотированный класс @Entity.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...