powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / spring InitializingBean
7 сообщений из 7, страница 1 из 1
spring InitializingBean
    #39084659
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!
как узнать, что spring завершил создание bean если он задан через util?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public  class ListDao extends ArrayList <InterfaceDao> implements InitializingBean {
  public  void setList(List<InterfaceDao> list){
            addAll(list);
    }
  public void afterPropertiesSet() {
         System.out.println("OK");
  }
}


так 'afterPropertiesSet' запускается, что естественно
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<bean class="model.ListDaoModel">
	<property name="list">
	<list>
		<ref bean="id1"/>
		<ref bean="id2"/>
	</list>
	</property>
</bean>


а так нет, что неожиданно
Код: xml
1.
2.
3.
4.
<util:list list-class="model.ListDaoModel">
	<ref bean="id1"/>
	<ref bean="id2"/>
</util:list>


что можно еще придумать?
...
Рейтинг: 0 / 0
spring InitializingBean
    #39084670
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa,

А мусьё знает толк в извращениях. Spring считает что list это не bean а некий value.
Вот интересное решение:
http://stackoverflow.com/a/2416113
...
Рейтинг: 0 / 0
spring InitializingBean
    #39085210
Victor Alenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужно только перехватывание завершения создания бина, то можно так:

0) создаём BeanFactory:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
import org.springframework.beans.factory.config.ListFactoryBean;

public class ListDao extends ListFactoryBean {
	@Override
	public void afterPropertiesSet() throws Exception {
		super.afterPropertiesSet();

		System.out.println("OK. elements: " + this.getObject().size());
	}
}



1) описываем XML-конфигурацию:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<bean id="listDao" class="ListDao" p:targetListClass="java.util.ArrayList">
	<property name="sourceList">
		<list value-type="InterfaceDao">
			<ref bean="id1"/>
			<ref bean="id2"/>
		</list>
	</property>
</bean>



2) PROFIT
...
Рейтинг: 0 / 0
spring InitializingBean
    #39086389
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Alenkov,

Спасибо, однако profit в 4 строчках конфига против 8. Не более того)))
...
Рейтинг: 0 / 0
spring InitializingBean
    #39086553
Victor Alenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa,

профит в философии Spring. Если не хотите делать явно Bean, а создавать его через util:list (который по сути есть XML-алиас к ListFactoryBean), то надо через фабрику. Но если у вас помимо создания "чистого" List-объекта есть ещё и его расширение (доп. методы там или ещё что), то я бы делал его как Bean с имплементацией InitializingBean
...
Рейтинг: 0 / 0
spring InitializingBean
    #39086822
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
через BeanPostProcessor
...
Рейтинг: 0 / 0
spring InitializingBean
    #39087148
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Atum1через BeanPostProcessor
Спасибо, это "спасет отца русской демократии" (c)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / spring InitializingBean
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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