portable datasource config using spring

Wanneer je in development een datasource gebruikt kan je die zonder aanpassing naar jboss overbengen door gebruik te maken van jndi lookup via springframework.

Maak een bestand datasource.properties die je database toegang bevat en

gebruik onderstaande springframework configuratie.

Zo kan je in ontwikkeling je lokale verbinding gebruiken en eens onder jboss gebruikt je applicatie de gedefiniëerde jndi name.

een voorbeeld config xml definition :

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
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/jee
http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<!-- your local connection config -->

<context:property-placeholder location="classpath:props/datasource.properties"/>

<!-- your local datasource -->

<bean id="local.datasource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="${dataSource.driverClassName}"
p:url="${dataSource.url}"
p:username="${dataSource.username}"
p:password="${dataSource.password}"
/>

<!-- jndi lookup as configured in jboss datasource.xml will be picked up , when not present defaults to your local datasource -->

<jee:jndi-lookup id="jndi.datasource" jndi-name="${dataSource.jndiname}"
default-ref="local.datasource" />
</beans>


Plaats een opmerking