gpt4 book ai didi

java - spring application.properties 中的第二个数据源用于测试?

转载 作者:行者123 更新时间:2023-12-01 22:10:02 25 4
gpt4 key购买 nike

我在 application.properties 中将数据源定义为 Oracle 数据库,没关系, Controller 和存储库工作正常,我可以保留实体并获取数据库记录。

我已经编写了集成测试。在将我的应用程序与数据库连接之前,我创建了一些对象并将它们保存在 @PostConstruct 方法中 - 这没问题。但是现在,当我将所有内容与数据库连接时,我的测试尝试从非常大的表中获取记录。我认为这是由于我的 application.properties 文件中定义的数据源是 Oracle 数据库。

spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@blabla
spring.datasource.username=blabla
spring.datasource.password=blabla
spring.jpa.hibernate.ddl-auto=none
spring.jpa.generate-ddl=false

我想使用一些内存中的HSQL进行测试,而不是真正的数据库。但我仍然希望我的 Controller 和存储库使用真实的 Controller 和存储库。我该怎么做?是否有可能在 application.properties 中添加第二个数据源?或者也许是一个更简单的解决方案?

最佳答案

在 Spring 4 中,您有 @Profile 注释,因此您可以利用它的优势。创建另一个类似 application-test.properties 文件并具有自己的属性。

为您的测试创建配置:

@Configuration
@Profile("test")
public class TestConfiguration {
....
}

然后使用 @ActiveProfiles 注释来注释您的类:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = TestConfiguration.class)
@ActiveProfiles("test")
public class TestRepository {
...
}

关于java - spring application.properties 中的第二个数据源用于测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31984604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com