Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Мои Университеты: Spring configuration / 5 сообщений из 5, страница 1 из 1
18.04.2013, 23:00:22
    #38231775
kadet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои Университеты: Spring configuration
Добыл книжку "Spring in Action" (third edition) Covers Spring 3.0.

Начал его изучать. Прочитал еще не все, но возникли вопросы к файлу конфигурации. Мне непонятно следующее.

Создаем элементарный java bean, который имеет конструктор с набором аргументов для инициализации внутренних переменных.

В книжке написано, что в файле конфигурации нужно (можно) объявить элемент
Код: xml
1.
2.
3.
	<bean id="duke" class="com.springinaction.springidol.Juggler" >
		<constructor-arg value="15" />
	</bean>


создание объекта:
Код: java
1.
Performer performer = (Performer) ctx.getBean("duke");



после исполнения этой строчки, будет создан новый объект performer и инициализирован значением 15.

А как быть в том случае, когда мне надо например по какому-то событию создать объект и инициализировать его только через конструктор значением, которое будет известно на момент исполнения ?

конечно надо книжку до конца прочитать, но вопрос сейчас возник. хотелось бы его не откладывать в "долгий ящик".

спасибо
...
Рейтинг: 0 / 0
18.04.2013, 23:10:04
    #38231783
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои Университеты: Spring configuration
kadetсоздание объекта:
Код: java
1.
Performer performer = (Performer) ctx.getBean("duke");



Это не совсем создание. Это получение их контекста. По-умолчанию у бинов scope=singleton. Повторный вызов этого метода вернет тот же самый объект. Можно так же указать чтобы объект создавался во время инициализации контекста, а не когда он первый раз нужен.

kadetА как быть в том случае, когда мне надо например по какому-то событию создать объект и инициализировать его только через конструктор значением, которое будет известно на момент исполнения ?

Вопрос слишком общий. Вариантов масса. Например параметр конструктора может быть ссылка на свойтсво другого бина. Хотя это используется очень редко. Сложно ответить сходу про решение, не понимая для чего оно нужно.
Например если это конфигурация, то используется один поход. Если это web - другой. И все они, грубо говоря, инстанциируют бины в рантайме с неким не фиксированым параметром.
...
Рейтинг: 0 / 0
18.04.2013, 23:46:25
    #38231825
kadet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои Университеты: Spring configuration
BlazkowiczВопрос слишком общий. Вариантов масса. Например параметр конструктора может быть ссылка на свойтсво другого бина. Хотя это используется очень редко. Сложно ответить сходу про решение, не понимая для чего оно нужно.
Например если это конфигурация, то используется один поход. Если это web - другой. И все они, грубо говоря, инстанциируют бины в рантайме с неким не фиксированым параметром.

Дело в том, что по опыту я предпочитаю создавать элементарные объекты максимально избегая где можно set-методы для инициализации внутренних переменных. Я использую для этих целей конструктор. Исходя из этой логики я вижу ограничения со стороны Spring, который принуждает делать совершенно противоположное и плодить ненужные set-методы.

Как я понял Spring можно использовать и простых "настольных" приложениях. Именно поэтому и возник вопрос, как получить контекст объекта, который инициализирован через конструктор переменными, известными на момент исполнения? Самый простой пример - происходит событие, по которому например требуем контекст объекта инициализированного данными, прочитанными из БД (Hibernet исключаем и работаем только с JDBC для общего образования).
...
Рейтинг: 0 / 0
18.04.2013, 23:48:16
    #38231828
kadet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои Университеты: Spring configuration
BlazkowiczИ все они, грубо говоря, инстанциируют бины в рантайме с неким не фиксированым параметром .

вот про это хотелось бы по подробнее.

спасибо
...
Рейтинг: 0 / 0
19.04.2013, 09:47:22
    #38232068
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои Университеты: Spring configuration
kadet,
- напиши скелет кода без спринга. Сразу будет видно с бинами на спринге
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Мои Университеты: Spring configuration / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]