Estoy utilizando la anotación @Configuration
para la configuración del archivo de primavera en lugar del archivo xml. Estoy configurando 2 fuentes de datos con una fábrica de sesiones diferente y diferentes administradores de transacciones. Estoy atascado con un problema aquí para la anotación @EnableTransactionManagement
. He leído en su documentación que,anotación @EnableTransactionManagement con 2 gestores de transacciones
@EnableTransactionManagement
is more flexible; it will fall back to a by-type lookup for anyPlatformTransactionManager
bean in the container. Thus the name can be "txManager", "transactionManager", or "tm": it simply does not matter.
Esto significa que cualquiera que sea el nombre que doy a método, siempre va a buscar el método que devuelve PlatformTransactionManager
objeto mientras tengo 2 transactionmanagers. Ahora el problema es, cuando pruebo esta clase, me da error:
org.springframework.beans.factory.NoSuchBeanDefinitionException
: No unique bean of type [org.springframework.transaction.PlatformTransactionManager
] is defined: expected single bean but found 2
incluso traté de tener 2 clases de configuración diferentes, pero en vano. En la configuración xml, este no era el caso. Registré a mis dos gerentes de transacciones con dos etiquetas <tx:annotation-driven transaction-manager="" />
y funcionó bien. Pero no puedo hacer lo mismo aquí con anotaciones.
¿Qué debo hacer si deseo configurar 2 orígenes de datos con 2 gestores de transacciones diferentes en la clase de configuración anotada de Spring?
Esto puede ser un error, ya que Spring 3.1 todavía está en la etapa beta/rc. – skaffman