2016-06-15 24 views
0

は、このような引数の任意の数のクラスを有するコンストラクタが存在すると仮定するconfigファイルに定義されている値の数(1から多くのURIでもかまいません)。呼び出したJavaコンストラクタ

Spring XMLでClassA Beanを定義する方法を教えてください。

public interface FactoryBean<T> { 
    T getObject() throws Exception; 
    Class<T> getObjectType(); 
    boolean isSingleton(); 
} 

は、基本的にその種類の豆の定義:

答えて

1

はFactoryBeanのインターフェイスを使用します。あなたは文字列として「URIの」プロパティを注入して、春が提供する何のコンバータはありません場合は変換する必要があり

public class ClassAFactoryBean implements FactoryBean<ClassA> { 

    @Value("${uris}") 
    URI[] uris; 

    ClassA getObject() throws Exception { 
     return new ClassA(uris); 
    } 

    Class<T> getObjectType() { 
     return ClassA.class; 
    } 

    boolean isSingleton() { 
     return true; 
    } 
} 

<bean id="classA" class="ClassAFactoryBean"/> 

そして、このような何か。または独自のURIコンバータをフックします。

0

次の設定が正常に動作します:

<beans> 
    <bean id="ClassA" class="ClassA"> 
     <constructor-arg ref="uri"/> 
    </bean> 

    <bean id="uri" class="URI"/> 
</beans> 
関連する問題