applicationContext.xml mit Datenquelle oder hibernate.cfg.xml. Unterschied?
Löschen möchten einige Verwirrung. Ich habe applicationContext.xml.
Frage 1: Was ist der Unterschied zwischen 1 & 2. Sind Sie beide gleiche mit dem anderen Ansatz?
Frage 2:
Ich fragte Frage über die Frühlings-forum über ein problem. Onething erwähnte er etwa die Bündelung unter
wenn Sie brauchen/wollen, verwenden Sie die interne Verbindungs-pooling für hibernate
Ich würde abraten und einfach konfigurieren einer Datenquelle, die
unterstützt connection-pooling und Spritzen, die in Ihrem
sessionfactorybean.
internen Verbindungs-pooling für hibernate = Das ist Nummer 2 unten. Richtig?
einfach konfigurieren einer Datenquelle, die unterstützt connection-pooling und Spritzen, die in Ihrem sessionfactorybean = Das ist Nummer 1 unter. richtig?
1# -
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maxActive" value="100"/>
<property name="maxIdle" value="30"/>
<property name="maxWait" value="16000"/>
<property name="minIdle" value="0"/>
</bean>
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="annotatedClasses">
<list>
<value>com.mkyong.customer.model.Customer</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.generate_statistics">true</prop>
</props>
</property>
</bean>
2# -
Bündelung und Verbindung info ist in hibernate.cfg.xml
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml" />
</bean>
InformationsquelleAutor der Frage Pirzada | 2012-09-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Antwort 1:
Beide Ansätze sind die gleichen. Standardmäßig hibernate liest die Konfiguration aus
classpath:hibernate.cfg.xml
zu bauenSessionFactory
.LocalSessionFactoryBean
nur ermöglicht Ihnen die Einstellung der hibernate-Konfiguration innerhalbapplicationContext.xml
statthibernate.cfg.xml
.Wenn eine gleiche Eigenschaft angegeben wird in beiden Dateien , abhängig von der Immobilie , es hat süchtig machenden Wirkung oder die angegebenen Eigenschaften in
applicationContext.xml
nehmen eine höhere Priorität, so dass diese Werte inhibernate.cfg.xml
werden ignoriert.Für Methode 1,
annotatedClasses
undhibernateProperties
sollte die süchtig machende Wirkung mit den entsprechenden Werten inhibernate.cfg.xml
. Der DBCP dataSouruce inapplicationContext.xml
sollte dazu führen, dass die Eigenschaften in Zusammenhanghibernate.cfg.xml
ignoriert.Antwort 2:
Für Methode 2 , wenn Sie nicht angeben, welche Eigenschaften des
LocalSessionFactoryBean
alle, die den hibernate-Konfigurationen angegeben werden, die von derhibernate.cfg.xml
. Wenn es keine Verbindung-pool konfigurierthibernate.cfg.xml
, hibernate-eigene Verbindungs-pooling Algorithmus, der standardmäßig verwendet wird , die ist ziemlich rudimentär und nicht vorgesehen für die Verwendung in einem Produktionssystem, oder auch für performance-Tests.InformationsquelleAutor der Antwort Ken Chan
Wenn das, was Sie wollen, ist der Bau einer Sitzung der Fabrik, erhalten Sie das gleiche Ergebnis mit beiden Ansätzen. Ich glaube nicht, dass man mehr tun kann, als die anderen.
Meiner Meinung nach, verwenden Sie die hibernate.cfg.xml Ansatz, wenn Sie nicht mit Spring. Beim JUnit-testen Sie Ihre DAOs zum Beispiel. Nicht mit zu bauen, eine Spring-Anwendung Kontext macht Ihre tests laufen schneller.
Jedoch, wenn Sie mit Frühling, ich denke, es ist eine gute Sache zu halten Ihrer Datenquelle getrennt von der session factory. Sie sind mit Feder für die Abhängigkeit zu injizieren, richtig? Warum nicht mit dem Frühjahr zu geben, Ihre session factory, was es braucht?
InformationsquelleAutor der Antwort Alban