Так вот, что я в итоге и сделал. Я создал в dataAccessContext.xml, который загружается при запуске с contextConfigLocation. Это включает в себя один из сеансов фабрики.
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
...
<property name="namingStrategy" ref="namingStrategy"/>
...
</bean>
В моем web.xml я включаю OpenSessionInViewFilter, который отображается в / *
<filter>
<filter-name>HibernateSessionRequestFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sessionFactory</param-value>
</init-param>
Затем другой sessionFactory включается в dataAccessContextEnergy.xml, который импортируется в мой весенний конфиг energy-config.xml.
Energy-config.xml также включает в себя перехватчик фильтра opensessioninview;
<mvc:interceptors>
<bean class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
<property name="sessionFactory" ref="sessionFactoryEnergy"/>
</bean>
Итак, у меня есть две фабрики сессий и две открытые сессии ... Надеюсь.
Это хороший способ сделать это? Или я буду гореть в аду? :-)