( RESOLVIDO ) Spring e multiplas bases de dados

Pessoal, vcs ja fizeram algum sistema que se conecta em varias bases de dados utilizando o jdbcTemplate do Spring ? Pensei em algumas alternativas mas nao consigo sair daquela na qual teria q ter varios applicationContexts, onde cada um instanciaria um jdbcTemplate apontando para um dataSource. Seria essa uma alternativa viavel ou há uma maneira no Spring clara e objetiva de se ter varios dataSources ?

Eu usava assim…

ViniGodoy vc referenciava todos os appContexts no seu web.xml, cada um com suas configuracoes e apontando para seu datasource ? Sabe se o spring pode ter problemas em se ter variaveis com mesmo nome em diferentes appContexts ? Ex, jdbcTemplate …

Vc não pode ter beans com mesmo nome.
Já tentou usar nomes diferentes?
dataSource1, dataSource2, transactionManager1, transactionManager2, sessionFactory1, sessionFactory2, etc.

fabiofalci nao posso ter beans com o mesmo nome nem mesmo em arquivos de contexto separados ? Realmente quando isso acontece o spring lanca um log dizendo que esta sobrescrevendo uma propriedade. Seria entao importante nao duplicar os nomes em todos os arquivos?

Mesmo em arquivos diferente não pode repetir.

O que vc pode ter é ApplicationContexts distintos para arquivos diferentes, assim pode repetir nomes, mais ou menos assim:

ApplicationContext appContext1 = new ClassPathXmlApplicationContext("app-context1.xml");
ApplicationContext appContext2 = new ClassPathXmlApplicationContext("app-context2.xml");

Dai assim os beans não se “misturam”. Mas penso que seria um trabalheira organizar isso.
Acho que o mais viável ainda é colocar nome de beans diferentes.

hum obrigado parceiro ! Dúvida solucionada !

Uma maneira que pode ser mais elegante é usar o attributo “name” e não “id”.

[code]
<bean name="domain1:MyBean"
class=“pkg.MyBeanImplementation”>
<!-- Proprieades DB 1–>
</bean>

&lt;bean name="domain2:MyBean"
	class="pkg.MyBeanImplementation"&gt;
		&lt;!-- Proprieades DB 2--&gt;
&lt;/bean&gt;[/code]

Utilizando “id” não é possível incluir “:” por exemplo. O getBean funciona da mesma forma.