Attualmente sto convertendo il xml in java config. Ma ho bloccato una parte della mia ricerca da diversi giorni. Qui il problema:come convertire jndi lookup da xml a java config
Xml config:
<jee:jndi-lookup id="dbDataSource" jndi-name="${db.jndi}" resource-ref="true" />
<beans:bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate" >
<beans:property name="dataSource" ref="dbDataSource"></beans:property>
</beans:bean>
Finora sono riuscito a convertire questo codice:
<jee:jndi-lookup id="dbDataSource" jndi-name="${db.jndi}" resource-ref="true" />
a questo:
@Bean(name = "dbDataSource")
public JndiObjectFactoryBean dataSource() {
JndiObjectFactoryBean bean = new JndiObjectFactoryBean();
bean.setJndiName("${db.jndi}");
bean.setResourceRef(true);
return bean;
}
E questo:
<beans:bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate" >
<beans:property name="dataSource" ref="dbDataSource"></beans:property>
</beans:bean>
a questo:
@Bean(name = "jdbcTemplate")
public JdbcTemplate jdbcTemplate() {
JdbcTemplate jt = new JdbcTemplate();
jt.setDataSource(dataSource);
return jt;
}
Il problema è il metodo setDataSource() oggetto DataSource bisogno, ma io non sono sicuro di come mettere in relazione sia bean.How per passare il JndiObjectFactoryBean a DataSource?
Oppure è necessario utilizzare un altro metodo?
Domanda extra:
Il bean.setJndiName("${db.jndi}")
, $ {} db.jndi si riferiscono alle proprietà del file, ma ho sempre avuto NameNotFoundException, Come farlo funzionare?
Grazie !!
grazie sta lavorando, ma hanno bisogno di aggiungere stringa dopo '@value ("$ {} db.jndi"' – FreezY
tipizzati dalla mia testa, perso il 'STRING', fissato ora. –