Здравствуйте, Дм.Григорьев, Вы писали:
ДГ>>Есть ли способ заставить Hibernate создавать экземпляры entities, используя Spring IoC (prototype scope), или какой другой (желательно блин удобный) способ инъектить в entities зависимости?
ДГ>Нашёл в Spring 2.5 Reference, Chapter 6.8.1 "Using AspectJ to dependency inject domain objects with Spring". Правда там без полноценных примеров, а всю главу читать времени нет.
Интересное решение. А на производительность сильно влияет?
Сейчас посмотрел — можно еще сделать без использования аспектов, через Interceptor (хотя это менее универсально). Например:
public class HbnDomainInterceptor extends EmptyInterceptor implements BeanFactoryAware {
AutowireCapableBeanFactory beanFactory;
public AutowireCapableBeanFactory getBeanFactory() {
return beanFactory;
}
public void setBeanFactory(BeanFactory beanFactory) {
this.beanFactory = (AutowireCapableBeanFactory) beanFactory;
}
@Override
public boolean onLoad(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) {
// Установка зависимостей
beanFactory.autowireBeanProperties(entity, AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, false);
return super.onLoad(entity, id, state, propertyNames, types);
}
}
HbnDomainInterceptor объявлен к контексте spring'а.