@Beanを使用して、データソースをXMLではなくコードで定義します。こうすることで、Beanの作成方法に条件付きのロジックを適用できます。たとえば:
@Value("${url:jdbc:hsqldb:mem:memdb}")
String url;
// username, password, etc
@Value("${jndiName:}")
String jndiName;
@Bean
public DataSource dataSource() {
DataSource ds;
if (jndiName == "") {
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName(driverClassName);
bds.setUrl(url);
bds.setUsername(username);
bds.setPassword(password);
ds = bds;
} else {
JndiObjectFactoryBean = jndiFactory = new JndiObjectFactoryBean();
jndiFactory.setJndiName("java:/" + jndiName);
jndiFactory.afterPropertiesSet();
ds = (DataSource) jndiFactory.getObject();
}
return ds;
}
チェックアウトhttp://stackoverflow.com/questions/5967405/handling-of-configuration-files-in-j2ee-web-applicationsは、多分あなたは、いくつかのアイデアを得ます。 – abalogh