自定义注释的外推属性值

问题描述 投票:0回答:1

我编写了一个 spring-boot 测试并创建了一个自定义注释:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("integration-test")
public @interface IntegrationTest {

    String[] properties() default {};
}

如您所见,我定义了

properties
属性,以便可以覆盖这样的属性:

@IntegrationTest(properties = {"my.property=value"})
public class MyIntegrationTest {
    // test code here
}

我没有任何额外的配置,我的属性值会自动放入

@SpringBootTest(properties = )
,这就是我真正想要实现的。

但是现在我想知道如何理解这个属性的值应该放在

@SpringBootTest(properties = )
中?

java spring spring-boot
1个回答
1
投票

您应该用

properties
 注释 
@AliasFor
,如下所示:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("integration-test")
public @interface IntegrationTest {

    @AliasFor(annotation = SpringBootTest.class, attribute = "properties")
    String[] properties() default {};
}
© www.soinside.com 2019 - 2024. All rights reserved.