2016-05-27 3 views
0

私は次の質問があります。私は設定XML(春はありません)を持つSPRINGアプリを持っています。この文書は、私のアプリに実装するクラスの名前を持っています。(com.stack.impl春のロード実装なしxxx

String myClass=xml.getProperty(id); 
    MyInterface myInterface=ctx.getBean(myClass); 
    myInterface.execute(); 

どれ暗示:.MyClass)と、このclasssが私のインターフェイス(MyInterfaceが言ったことができます) を実装だから私はこのように、何かが起こったときにdinamically実装を呼び出すようにしたいですか?おかげで、私はこの方法を使用

+1

は、アプリケーションコンテキストの外に豆を取得し、メソッドを呼び出しますそれはとても簡単です。なぜあなたはこれを難しくしていますか?春に仕事をさせてください。 – duffymo

+0

もし私がもっと多くの担当者を持っていたなら、私はdown-voteもします – jjhavokk

+0

私はspring-baen.xmlを使用していません。クラスの名前は文字列にしかありません – user3272931

答えて

0

については、あなたの助けの@duffymoと@jjhavokkのためにたくさん感謝し、あなたが他の皆さんと同じ助けを得る願っています:

public AnnotationConfigApplicationContext init(){ 
    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); 
    try { 
     Class<DataPreProcessor> c= (Class<DataPreProcessor>) Class.forName("com.banamex.middleware.commons.DataPrepProcesorTest"); 
     Class<DataPreProcessor> c2= (Class<DataPreProcessor>) Class.forName("com.banamex.middleware.commons.DataPrepProcesorTest2"); 
     DataPreProcessor dp=c.newInstance(); 
     DataPreProcessor dp2=c2.newInstance(); 
     context.getBeanFactory().registerSingleton("c", dp); 
     context.refresh(); 
    } catch (InstantiationException e) { 

     e.printStackTrace(); 
    } catch (IllegalAccessException e) { 
     e.printStackTrace(); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
    return context; 
} 
関連する問題