0

私は 2 つのデータベースを使用しているので、My context servlet に両方を追加しました。しかし、それはエラーを出します..私のservlet.contextは

<!-- Mongo settings -->
    <mongo:mongo id="mongo" host="192.148.5.5" port="27017" />

    <beans:bean id="mongoTemplate"
        class="org.springframework.data.mongodb.core.MongoTemplate">
        <beans:constructor-arg ref="mongo" />
        <beans:constructor-arg name="databaseName"
            value="WriteDB" />

    </beans:bean>
    <beans:bean id="mongoTemplate2"
        class="org.springframework.data.mongodb.core.MongoTemplate">
        <beans:constructor-arg ref="mongo" />
        <beans:constructor-arg name="databaseName"
            value="readDB" />

    </beans:bean>
    <mongo:repositories base-package="com.cheasyy.cofinding,com.cheasyy.cofinding.controller" />

エラーは

自動配線された依存関係の注入に失敗しました。ネストされた例外は org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.data.mongodb.core.MongoTemplate com.cheasyy.cofinding.service.profile.ProfileServiceImpl.mt; です。ネストされた例外は org.springframework.beans.factory.NoSuchBeanDefinitionException: タイプ [org.springframework.data.mongodb.core.MongoTemplate] の一意の Bean が定義されていません: 単一の一致する Bean が予想されますが、2 が見つかりました: [mongoTemplate, mongoTemplate2] org.springframework .beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287) どこに行方不明ですか?

私の ProfileServiceImpl クラスは @Service です

public class ProfileServiceImpl implements profileService {

    @Autowired
    MongoTemplate mt;
    @Override
    public void insert(Profile profile) {
        // TODO Auto-generated method stub
        System.out.println("in service ipl");
    mt.save(profile);   
    System.out.println("saved in db");

    }

}
4

1 に答える 1

0

ドキュメントから直接:

5.9.3 修飾子を使用したアノテーションベースのオートワイヤーの微調整

タイプによるオートワイヤーは複数の候補につながる可能性があるため、多くの場合、選択プロセスをより詳細に制御する必要があります。これを実現する 1 つの方法は、Spring の @Qualifier アノテーションを使用することです。

詳細については、リンクをクリックしてください。

于 2013-11-30T08:07:48.830 に答える