我正在使用 Spring 和 Hibernate,并希望使用 DBUnit 进行一些集成测试。在我的 application-context.xml 中,我目前通过 jndi-lookup 指定一个数据源,它从属性文件中读取 jndi-name:
<jee:jndi-lookup id="dataSource"
jndi-name="${datasource.myapp.jndi}"
cache="true"
resource-ref="true"
proxy-interface="javax.sql.DataSource" />
我想通过提供一个新的属性文件将其交换到内存数据库(hsqldb、h2 等)以进行集成测试,这可能吗?还是我应该使用不同的 application-context.xml 进行集成测试?
最佳答案
您可以为 prod 和 test 使用单独的应用程序上下文,或者为 JNDI 数据源指定一个默认数据源,以便在查找失败时使用该数据源。然后不要在您的集成测试环境中配置 JNDI 数据源。当查找失败时,Spring 将自动故障转移到内存中的源。
关于java - 如何将 jndi 数据源查找交换到内存数据库以进行集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7512154/