Class SpringBeanContainer
- java.lang.Object
- org.springframework.orm.hibernate5.SpringBeanContainer
- All Implemented Interfaces:
org.hibernate.resource.beans.container.spi.BeanContainer
,Stoppable
public final class SpringBeanContainer extends Object implements org.hibernate.resource.beans.container.spi.BeanContainer
Spring's implementation of Hibernate 5.3'sBeanContainer
SPI, delegating to a SpringConfigurableListableBeanFactory
.Auto-configured by
LocalSessionFactoryBean.setBeanFactory(org.springframework.beans.factory.BeanFactory)
, programmatically supported viaLocalSessionFactoryBuilder.setBeanContainer(org.springframework.beans.factory.config.ConfigurableListableBeanFactory)
, and manually configurable through a "hibernate.resource.beans.container" entry in JPA properties, e.g.:<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> ... <property name="jpaPropertyMap"> <map> <entry key="hibernate.resource.beans.container"> <bean class="org.springframework.orm.hibernate5.SpringBeanContainer"/> </entry> </map> </property> </bean>
Or in Java-based JPA configuration:LocalContainerEntityManagerFactoryBean emfb = ... emfb.getJpaPropertyMap().put(AvailableSettings.BEAN_CONTAINER, new SpringBeanContainer(beanFactory));
Please note that Spring'sLocalSessionFactoryBean
is an immediate alternative toLocalContainerEntityManagerFactoryBean
for common JPA purposes: In particular with Hibernate 5.3/5.4, the HibernateSessionFactory
will natively expose the JPAEntityManagerFactory
interface as well, and HibernateBeanContainer
integration will be registered out of the box.- Since:
- 5.1
- Author:
- Juergen Hoeller
- See Also:
LocalSessionFactoryBean.setBeanFactory(org.springframework.beans.factory.BeanFactory)
,LocalSessionFactoryBuilder.setBeanContainer(org.springframework.beans.factory.config.ConfigurableListableBeanFactory)
,AbstractEntityManagerFactoryBean.setJpaPropertyMap(java.util.Map<java.lang.String, ?>)
,AvailableSettings.BEAN_CONTAINER
Constructor Summary
Constructors Constructor Description SpringBeanContainer(ConfigurableListableBeanFactory beanFactory)
Instantiate a new SpringBeanContainer for the given bean factory.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <B> org.hibernate.resource.beans.container.spi.ContainedBean<B>
getBean(Class<B> beanType, org.hibernate.resource.beans.container.spi.BeanContainer.LifecycleOptions lifecycleOptions, org.hibernate.resource.beans.spi.BeanInstanceProducer fallbackProducer)
<B> org.hibernate.resource.beans.container.spi.ContainedBean<B>
getBean(String name, Class<B> beanType, org.hibernate.resource.beans.container.spi.BeanContainer.LifecycleOptions lifecycleOptions, org.hibernate.resource.beans.spi.BeanInstanceProducer fallbackProducer)
void
stop()
Constructor Detail
SpringBeanContainer
public SpringBeanContainer(ConfigurableListableBeanFactory beanFactory)
Instantiate a new SpringBeanContainer for the given bean factory.- Parameters:
beanFactory
- the Spring bean factory to delegate to
Method Detail
getBean
public <B> org.hibernate.resource.beans.container.spi.ContainedBean<B> getBean(Class<B> beanType, org.hibernate.resource.beans.container.spi.BeanContainer.LifecycleOptions lifecycleOptions, org.hibernate.resource.beans.spi.BeanInstanceProducer fallbackProducer)
- Specified by:
getBean
in interfaceorg.hibernate.resource.beans.container.spi.BeanContainer
getBean
public <B> org.hibernate.resource.beans.container.spi.ContainedBean<B> getBean(String name, Class<B> beanType, org.hibernate.resource.beans.container.spi.BeanContainer.LifecycleOptions lifecycleOptions, org.hibernate.resource.beans.spi.BeanInstanceProducer fallbackProducer)
- Specified by:
getBean
in interfaceorg.hibernate.resource.beans.container.spi.BeanContainer