3

すべてのデータ ソース接続に使用される接続プール クラス。接続のタイプを示す静的な列挙型があります。

class ConnectionPool {

   public static enum Type {
     t1,
     t2,
     t3;
   }
…
}

別のクラスにはデフォルトの契約者がありません。コンストラクターは Type を契約者引数として受け取ります

class Update {
   public Update(Type type) {
      this.type = type;
   }
...
}

applicationContext.xml で、Bean を定義

<bean id="update" class="package.Update">
    <contructor-arg type="package.ConnectionPool.Type">
        <value>Type.t1</value>
    </contructor-arg>
</bean>

しかし、私は得ました

Error creating bean with name 'update' defined in class path resource [applicationContext.xml]: Unsatisfied dependency expressed through constructor argument with index 0 of type [package.ConnectionPools$PoolType]: Ambiguous constructor argument types - did you specify the correct bean references as constructor arguments?
4

1 に答える 1

3

これは機能するはずです:

<bean id="update" class="package.Update">
    <contructor-arg type="package.ConnectionPool.Type">
        <value>t1</value>
    </contructor-arg>
</bean>

あるいは:

<bean id="update" class="package.Update">
    <contructor-arg type="package.ConnectionPool.Type" value="t1"/>
</bean>

または私のお気に入り:

@Configuration
public class Config {

    @Bean
    public Update update() {
        return new Update(t1);
    }

}
于 2013-01-20T17:22:43.390 に答える