我创建了一个用@ApplicationProperties
注释的类
@Configuration
@ConfigurationProperties(prefix = "myapp.security")
class SecurityProperties {
lateinit var signingKey: String
}
进行测试以查看是否从配置文件中获取了值
@ExtendWith(SpringExtension::class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@SpringBootTest
@Profile("security-properties-test")
class SecurityPropertiesTest {
@Autowired
lateinit var securityProperties: SecurityProperties
@Test
fun `security properties are set`(){
securityProperties.signingKey shouldBe "theSigningKey"
}
}
当我在默认application.yml中创建一些值时,该值将被拾取,并且一切正常
spring:
jpa:
show-sql: true
myapp:
security:
signing-key: theSigningKey
但是当我尝试覆盖配置文件中的值时,仍使用默认配置文件中的值
spring:
jpa:
show-sql: true
myapp:
security:
signing-key: theSigningKey
---
spring:
profiles: security-properties-test
myapp:
security:
signing-key: anothertheSigningKey
我在这里想念什么?
答案 0 :(得分:0)
您在测试类上使用了错误的注释。应该用@Profile
而不是{{1}}来注释。