java - 如何将 jndi 数据源查找交换到内存数据库以进行集成测试?

标签 java hibernate spring integration-testing jndi

我正在使用 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/

相关文章:

java - 用于 hibernate 搜索的复合方面

Hibernate 非法尝试取消引用集合

java - Java 中令人费解的数组赋值行为

java - 为什么与类同名的方法不需要返回类型?

Java JFrame - 添加标签图像

java - 如何在 Spring Boot 中更新子实体和父实体?

java - Spring Integration 在拆分迭代器时抑制异常

java - 将 Handler 注入(inject)注解 Controller

java - 使用注解在 Spring Hibernate 中编写更少的 DAO

java - 具有 180 个属性的分片计数器