私は基本的な Swing アプリケーションを開発していますが、依存性注入のために常に Spring Ioc (xml 構成を使用) を使用する傾向がありますが、CDI-Weld を試してみたいと思っています。Spring で次の構造を作成するSchoolBoy
と、コンテナは と を作成しUniversityStudent
、それぞれにその名前を付けます。
public class Student{
protected String name;
public void setName(String name){
this.name = name;
}
}
public class SchoolBoy extends Student{
}
public class UniversityStudent extends Student{
}
<bean class="SchoolBoy">
<property name="name" value="Daniel" />
</bean>
<bean class="UniversityStudent">
<property name="name" value="Rose" />
</bean>
@Inject @Config
注釈を使用して CDI で同様のことを行うことが可能であることを確認しました。ただし、これを見るたびに、それらはプロパティ自体の上にあり、継承されたプロパティであるため、ここのクラスに対してそれを行うことはできません。Student
各サブクラスを達成して独自のname
値を取得するにはどうすればよいですか?
アップデート
その値をサブクラスに注入することは、必ずしも構成ファイルにそれらをハードコーディングすることを意味しません。プロパティ値自体は、 .propertiesファイルから取得できます。ただしStudent
、レガシー プロジェクトに含まれるエッジ ケースがあり、そこからクラスを継承してそのプロパティを注入したい場合、解決策は何でしょうか?