Configurações Spring + Jpa + Hibernate

Boa tardde pessoal!
Vejo em muitos lugares a configuração Spring Jpa Hibernate sendo feita desta forma:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	
	xsi:schemaLocation="http://www.springframework.org/schema/beans
						http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
						
						http://www.springframework.org/schema/context
						http://www.springframework.org/schema/context/spring-context-2.5.xsd
						
						http://www.springframework.org/schema/tx
						http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
						
	<tx:annotation-driven transaction-manager="txManager" />
	<context:annotation-config />
	<context:component-scan base-package="com.bds.cashmanager" />
		
	<!-- Gerenciador de transacoes baseado em JPA --> 
	<bean id="txManager"
		class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory"
			ref="entityManagerFactory" />
	</bean>
	
	<!-- Fabrica de entityManagers --> 
	<bean name="entityManagerFactory"
		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="persistenceUnitName" value="cashManagerUnit" />
		<property name="dataSource" ref="cashManagerDS" />
		<property name="jpaVendorAdapter">
			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
				<property name="showSql" value="true" />
				<property name="generateDdl" value="true" />
				<property name="database" value="MYSQL" />
			</bean>
		</property>
		<property name="jpaProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
			</props>
		</property>
	</bean>
	
	<!-- DataSource -->  
	<bean id="cashManagerDS" 
		class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://localhost/cashmanagerdb" />
		<property name="username" value="root" />
		<property name="password" value="" />
	</bean>
	
</beans>

Eu costumo configurar desta forma:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	
	xsi:schemaLocation="http://www.springframework.org/schema/beans
						http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
						
						http://www.springframework.org/schema/context
						http://www.springframework.org/schema/context/spring-context-2.5.xsd
						
						http://www.springframework.org/schema/tx
						http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
						
	<tx:annotation-driven transaction-manager="txManager" />
	<context:annotation-config />
	<context:component-scan base-package="com.bds.cashmanager" />
	
	<!-- Gerenciador de transacoes baseado em JPA -->
	<bean id="txManager"
		class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory"
			ref="entityManagerFactory" />
	</bean>

	<!-- Fabrica de entityManagers -->
	<bean name="entityManagerFactory"
		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="persistenceUnitName" value="cashManagerUnit" />
	</bean>

</beans>

Da primeira forma as configurações que estariam no persistence.xml estão na fabrica de entityManager, da segunda forma, as configurações do banco ficam no persistence.xml.

Pergunta?
Qual das duas formas é a mais correta já que as duas funcionam?

Eu gosto da segunda forma pois além das informações do BD ficarem mais centralizadas, eu posso configurar cache, c3po entre outros, coisa que eu não posso configurar direto no entityManager.

O que vocês acham? estou errado?

Valeu!!!

Cada uma tem um beneficio diferente, eu prefiro a segunda forma, já que voce pode editar o seu arquivo de cashe e chamar ele no persistence.xml. mas da forma que voce usa, vc tem menos arquivos xmls.