Używam adnotacji @Configuration
do konfiguracji pliku sprężyny zamiast xml. Konfiguruję 2 źródła danych z różnymi fabrykami sesji i różnymi menedżerami transakcji. Utknąłem z problemem tutaj dla adnotacji @EnableTransactionManagement
. Czytałam w jego dokumentacji,@EnableTransactionManagement adnotacja z 2 menedżerami transakcji
@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.
Oznacza to cokolwiek nazwa daję metody, zawsze będzie szukać sposobu, który powraca PlatformTransactionManager
obiekt natomiast mam 2 transactionmanagers. Problem polega na tym, że kiedy testuję tę klasę, daje mi to błąd:
org.springframework.beans.factory.NoSuchBeanDefinitionException
: No unique bean of type [org.springframework.transaction.PlatformTransactionManager
] is defined: expected single bean but found 2
Próbowałem nawet 2 różnych klas konfiguracji, ale na próżno. W konfiguracji xml tak nie było. Zarejestrowałem oba menedżery transakcji z dwoma tagami <tx:annotation-driven transaction-manager="" />
i wszystko działało bez zarzutu. Ale nie można tego zrobić tutaj z adnotacjami.
Co należy zrobić, jeśli chcę skonfigurować 2 źródła danych z 2 różnymi menedżerami transakcji w klasie konfiguracji z adnotacjami Spring?
To może być błąd, ponieważ Spring 3.1 jest wciąż w wersji beta/rc. – skaffman