db:
url: jdbc:oracle:thin:@pathToMyDb
username: someUser
password: fakePassword
我会用这样的方法来利用这些价值:
@Value("${db.username}") String username
但是,我最终出现了一个错误,如下所示:
Could not resolve placeholder 'db.username' in string value "${db.username}"
我如何在我的测试中也利用YAML的优点?
Spring-boot对此有一个帮助器,只需添加
@ContextConfiguration(initializers = ConfigFileApplicationContextInitializer.class)
在测试类或抽象测试超类的顶部。
编辑:我五年前写了这个答案。它不适用于最近版本的Spring Boot。这就是我现在所做的(如果需要,请将Kotlin翻译成Java):
@TestPropertySource(locations=["classpath:application.yml"])
@ContextConfiguration(
initializers=[ConfigFileApplicationContextInitializer::class]
)
@Configuration
open class TestConfig {
@Bean
open fun propertiesResolver(): PropertySourcesPlaceholderConfigurer {
return PropertySourcesPlaceholderConfigurer()
}
}
我试图将上面的文件加载到一个映射中,实体部分下的数据将映射到实体对象的集合。当我得到yaml解析器错误时,这是正确的yaml语法吗。
我在Java spring-boot应用程序的src/main/resources中定义了以下application-errors.yml文件: 请注意,我尝试了两种不同的格式来指定属性。 我通过@Configuration注释类中的以下Bean加载该属性文件: 我看到属性是通过Spring环境变量加载的,但不是我所期望的模式。调试时,我可以看到加载的属性文件的源包含以下值: 看起来 yaml 文
我正在尝试从application.yml.中检索值下面的最后一行显示kafkaConfig为null,无法读取。如何正确设置Kafka配置和代码以从json文件中读取?我们使用@Data而不是getters/setters。 KafkaConfig.java 应用yml公司 KafkaProducerBeans.java 资源:https://codingnconcepts.com/spring
我找到了类YamlPropertiesFactoryBean,它似乎能够完成我需要的工作。 我的问题是我不确定如何在我的Spring应用程序中使用这个类(它正在使用基于注释的配置)。看来我应该使用setBeanFactory方法在PropertySourcesPlaceholderConfigurer中配置它。 以前,我使用@PropertySource加载属性文件,如下所示:
引入 Maven 依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core</artifactId> <version>${shardingsphere.version}</version> </dependency> <!-- 使用