Re: Injections to entities: нашёл, но не работает. :(
От: danila.master Россия  
Дата: 21.02.08 09:35
Оценка: 12 (1)
Здравствуйте, Дм.Григорьев, Вы писали:

ДГ>>Есть ли способ заставить 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'а.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.