Динамическая настройка Java-бинов на основе файла свойств в Spring - PullRequest
0 голосов
/ 03 октября 2011

Интересно, есть ли способ динамического создания экземпляров bean-компонентов на основе набора значений в файле свойств с помощью класса PropertyPlaceholderConfigurer.

У меня есть Java-бин, скажем, Студент с двумя атрибутами: «имя» и «предмет»

У меня есть файл свойств с:

student.1.name=student1name
student.1.subject=student1subject
student.2.name=student2name
student.2.name=student2subject

Теперь у меня есть объект Классной комнаты, который может взять список студентов.

Мне интересно, есть ли способ сделать это, используя Spring. Проблема в том, что количество студентов может варьироваться.

Если был только один объект ученика, то:

<bean id="student" class="com.abc.Student">
    <property name="name" value="${student.1.name}" />
    <property name="subject"
        value="${student.1.subject}" />
</bean>

<bean id="classRoom" class="com.abc.ClassRoom">
    <property name="student" ref="student" />
</bean>

сработало бы. Но в этом случае у нас есть список русских студентов. И значение n может варьироваться в зависимости от количества записей в файле свойств.

Ответы [ 2 ]

0 голосов
/ 03 октября 2011

Я с Кевином - ИМО, вы идете по этому поводу неправильно.

Один из возможных обходных путей - создать боб, который принимает файл свойств в качестве аргумента, читает его ипредоставляет список учеников (который должен быть проиндексирован на что-то , например, n в существующем файле свойств).

Затем компонент класса может использовать этосписок студентов.

Но похоже, что вы пытаетесь дублировать функциональные возможности БД без БД, неуклюже.

0 голосов
/ 03 октября 2011

Я не думаю, что есть способ сделать это с помощью PropertyPlaceholderConfigurer.Обычно, когда у меня такая ситуация, я выбираю формат конфигурации JSON или XML и использую GSON / Jackson / JAXB, чтобы разбить данные на объекты.

...