1

これは私の構成です:

    <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>

mongo コンバーターの「マージ」に役立つ属性はありますか?

4

3 に答える 3

4

このcustom-converters要素には実際にはbase-package、リストされたパッケージのスキャンConverterGenericConverter実装をトリガーする属性もあります。レベルで使用していたのmapping-converterは、起動時にドメイン クラスをピックアップすることです。したがって、明示的に定義されたコンバーター Bean を削除し、追加の属性を追加するだけで問題ありません。

<mongo:mapping-converter base-package="my.package.entities">
  <mongo:custom-converters base-package="my.package.converters" />
</mongo:mapping-converter>
于 2012-03-29T22:00:38.597 に答える
0
<mongo:mapping-converter base-package="my.package.entities">
  <mongo:custom-converters base-package="my.package.converters" />
</mongo:mapping-converter>

1.1.0.RELEASE では動作しません。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>

すべてのコンバーターを登録します。それは意味がないようで、正しく実装されていれば、メンテナの提案はより良いものになるでしょう。

于 2012-12-15T21:13:17.663 に答える
0

次のように構成すると、同じ問題にも遭遇します。

<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.*.entities には、@Document 注釈付きクラスと @Entity 注釈付きクラスがあります。

于 2012-04-03T14:48:52.067 に答える