Различие между конфигурированием источника данных в persistence.xml и в пружинных конфигурационных файлах

Я видел (и сделал), конфигурация источника данных двумя способами (код ниже только для демонстрации):

1) конфигурация в единицах персистентности, как:

<persistence-unit name="LocalDB" transaction-type="RESOURCE_LOCAL">
    <class>domain.User</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <properties>
        <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
        <property name="hibernate.connection.url" value="jdbc:hsqldb:hsql://localhost"/>
        <property name="hibernate.hbm2ddl.auto" value="create"/>
        <property name="hibernate.c3p0.min_size" value="5"/>
        ....
        <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
    </properties>
</persistence-unit>

2) конфигурация в пружинных конфигурационных файлах (как applicationContext.xml):

<bean id="domainEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="JiraManager"/>
    <property name="dataSource" ref="domainDataSource"/>
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="generateDdl" value="false"/>
            <property name="showSql" value="false"/>
            <property name="databasePlatform" value="${hibernate.dialect}"/>
        </bean>
    </property>
</bean>

<bean id="domainDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value="${db.driver}" />
    <property name="jdbcUrl" value="${datasource.url}" />
    <property name="user" value="${datasource.username}" />
    <property name="password" value="${datasource.password}" />
    <property name="initialPoolSize" value="5"/>
    <property name="minPoolSize" value="5"/>
    .....
</bean>

Вопрос: есть ли какие-либо за и против каждого пути, или это - просто вопрос вкуса?

34
задан Roman 24 June 2010 в 17:20
поделиться

1 ответ

Это строго личное предпочтение.

Я бы посоветовал использовать конфигурацию Spring, если вы уже используете Spring. Его цель - внедрение и управление зависимостями, поэтому позвольте ему выполнять свою работу по отношению к вашей зависимости от базы данных. Однако, если вы еще не используете Spring, придерживайтесь конфигурации постоянства, учитывая, что это упростит ваш проект, оставаясь при этом функциональным. Однако я предполагаю, что любой проект, которому требуется Hibernate для взаимодействия с базой данных, вероятно, достаточно велик, чтобы оправдать использование Spring внутри.

4
ответ дан 27 November 2019 в 17:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: