2012-04-15 1 views
1

Я хочу ввести тот же экземпляр EntityManagerFactory в два моих весенних боба.Внесите один и тот же экземпляр компонента в две другие бобы

Стараюсь:

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> 
    <property name="persistenceUnitName" value="my-app"/> 
</bean>  

<bean id="serverDAO" 
    class="com.ehcachedemo.dao.ServerDAO"> 
    <property name="entityManagerFactory" ref="entityManagerFactory"/> 
</bean> 

<bean id="testServerDAO" 
    class="com.ehcachedemo.test.TestServerDAO"> 
    <property name="entityManagerFactory" ref="entityManagerFactory"/> 
</bean> 

Но во время выполнения, два экземпляра разница EntityManagerFactory впрыскивают. Какие-нибудь советы? Спасибо

+3

Почему вы думаете, что эти случаи отличаются? – axtavt

ответ

1

Учитывая, что фасоль, управляемая весной по умолчанию, является одноэлементной, ваш entityManagerFactory bean должен уже быть тем же экземпляром в обоих DAO.

Вы можете сделать это явным, добавив singleton="true" к вашему определению entityManagerFactory.

Так что ваше определение компонента должно быть:

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean" 
    singleton="true"> 
    <property name="persistenceUnitName" value="my-app"/> 
</bean> 
+0

Спасибо. В любом случае, я могу ввести один и тот же экземпляр, не ограничивая число экземпляров одним? – dublintech

+1

Что случилось с ограничением количества экземпляров? –

+1

Это не имеет смысла, 'LocalEntityManagerFactoryBean' производит по умолчанию одиночные списки. – axtavt

Смежные вопросы