1

私は基本的な 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、レガシー プロジェクトに含まれるエッジ ケースがあり、そこからクラスを継承してそのプロパティを注入したい場合、解決策は何でしょうか?

4

1 に答える 1