0

文字列をコンストラクターに自動配線したい。

私は春の設定xmlにこれを持っています:

<bean id="helper" class="test.Helper">
    <constructor-arg index="3" type="java.lang.String" value="http://test.com" />  
</bean>

Helper.java

@Component
public class Helper {
    private final ClientFactory clientFactory;
    private final ModelManager modelManager;
    private final SecurityService securityService;
    private final String url;

    @Autowired
    public Helper(ClientFactory clientFactory, ModelManager modelManager,
        SecurityService securityService, String url) {
        this.clientFactory = clientFactory;
        this.modelManager = modelManager;
        this.securityService = securityService;
        this.url = url;
    }
}

エラーが発生しています:

org.springframework.beans.factory.NoSuchBeanDefinitionException: タイプ [java.lang.String] の一意の Bean が定義されていません: 単一の一致する Bean が予想されますが、19 が見つかりました:

どんな助けでも大歓迎です。ありがとう!

4

2 に答える 2

0

@Autowired注釈を Ctor にドロップして、xml で構成してみてください。

<bean id="helper" class="test.Helper">
    <constructor-arg ref="clientFactory" />  
    <constructor-arg ref="modelManager" />  
    <constructor-arg type="java.lang.String" value="http://test.com" />  
    <constructor-arg ref="securityService" />  
</bean>
于 2013-07-11T01:43:12.653 に答える
0

コンストラクターの依存関係と共に index 属性を使用します。

<bean id="helper" class="test.Helper">
    <constructor-arg index="0" ref="clientFactory" />  
    <constructor-arg index="1" ref="modelManager" />  
    <constructor-arg index="2" ref="securityService" />  
    <constructor-arg index="3" type="java.lang.String" value="http://test.com" />  
</bean>

これは役立つはずです。

于 2014-11-11T09:13:43.943 に答える