Я разрабатываю базовое приложение Swing, и даже если я всегда использую Spring Ioc (с конфигурацией xml) для инъекции зависимостей, я хочу попробовать CDI-Weld. Имея следующую структуру, созданную весной, контейнер создает SchoolBoy
и UniversityStudent
, каждый из которых имеет свое имя.Ввод значений унаследованных свойств с использованием CDI-Weld
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>
Я видел, что это возможно сделать что-то подобное в CDI с помощью @Inject @Config
аннотаций. Однако каждый раз, когда я вижу это, они выше самого свойства и, будучи унаследованным свойством, я не могу сделать это для своих классов здесь. Как достичь каждого подкласса Student
, чтобы получить его значение name
?
UPDATE
Инъекция, что значения в подклассов не обязательно означает, что их жестко прописывать в файле конфигурации. Сама ценность свойства может быть получена из файла .properties. Однако, учитывая краевой случай, что Student
находится в унаследованном проекте, и я хочу наследовать свои классы от него и внедрить это свойство, каково может быть решение?
Не обязательно означает, что я хочу включить значение напрямую. Может быть ссылкой на файл * .properties *, где значение хранится. Однако как указать на это, если это поле 'A' class ** protected ** и' B' расширяет 'A', когда я хочу использовать' B'? –
Не понимаю ваш второй вопрос. Не могли бы вы объяснить это более глубоко? –
Я обновил свой вопрос. –