2011-01-13 4 views
2

XSDからJavaクラスを生成するのにxjcを使用しています。結果のクラスには、コレクション型のgetterメソッドのみが含まれます。 Listですが、セッターメソッドはありません。 Spring Framework内のBeanとしてこれらのクラスを使用するにはどうすればよいですか?すなわち、applicationContext.xmlのデータをこれらのフィールドに設定するにはどうすればよいですか? 「duffymo」と「ファティ」への応答としてJAXB:Springから自動生成されたクラスを使用するには?

:実際に私は豆を作成するためにJAXBObjectFactory、そのファクトリメソッドを使用するように春を告げることができ、

<bean id="myFactory" class="generated.ObjectFactory" /> 
<bean id="myBean" factory-bean="myFactory" factory-method="createMyBeanMethod" /> 

残りの問題は、移入する方法でありますsetterメソッドを持たないコレクションフィールド?

答えて

0

JAXBのコントロール下で作成され、Spring Beanファクトリでは作成されなかったため、できないと思います。

0

getter/setterの代わりにフィールドを使用できます。

0

生成されたコードがJAXBの制御下にあるので、それを行うことはできません。ただし、対処方法は次のとおりです。

JAXBはPersonクラスを作成します。生成されたプロパティは保護されます。

Personクラスを拡張した新しいクラスMyPersonを作成し、MyPersonクラスの内部に設定メソッドを配置できます。したがって、Beanの設定ファイルからプロパティを初期化することができ、生成されたコードは変更を無効にすることはありません。私は詳細を知らないので、あなたのケースの適切な回避策かもしれないし、そうでないかもしれません。

 generated : 
    public class Person{ 
      protected List<Something> somethingList; 
      . 
      . 
    } 




    class MyPerson extends Person{ 
     public void setList(List<Something> somethingList){ 
      this.somethingList= somethingList; 
     } 

    } 
0

ここに示されるように、リストのセット方法を生成するための拡張機能があります:与えられたリンクのように壊れているように見えるが、

は、参照先のサイトは再編成されています。

それは、コレクション・セッター・インジェクターの場所を取得するために、java.netに質問を投稿価値があるだろう。

関連する問題