Java 为@ConfigurationProperties创建元注释
我正试图基于Java 为@ConfigurationProperties创建元注释,java,spring-boot,Java,Spring Boot,我正试图基于@ConfigurationProperties注释创建自定义元注释,但Spring似乎没有拾取并解析@AliasFor注释 以下是我的注释: @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Bean @ConfigurationProperties public @interface ConfigurationBea
@ConfigurationProperties
注释创建自定义元注释,但Spring似乎没有拾取并解析@AliasFor
注释
以下是我的注释:
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Bean
@ConfigurationProperties
public @interface ConfigurationBean {
@AliasFor(annotation = ConfigurationProperties.class, attribute = "prefix")
String value() default "";
@AliasFor(annotation = Bean.class, attribute = "name")
String[] beanName() default {};
}
我的申请类别:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@ConfigurationBean("my.api")
public RestApiClientProperties externalApiProperties() {
return new RestApiClientProperties();
}
@Bean
public Object foo(RestApiClientProperties properties) {
System.out.println(properties.getBaseUrl()); // always null
return "bar";
}
}
我的属性类:
public class RestApiClientProperties {
private String baseUrl;
private Map<String,String> headers;
public String getBaseUrl() {
return baseUrl;
}
public void setBaseUrl(String baseUrl) {
this.baseUrl = baseUrl;
}
public Map<String, String> getHeaders() {
return headers;
}
public void setHeaders(Map<String, String> headers) {
this.headers = headers;
}
}
是我做错了什么,还是Spring Boot只是不支持
@AliasFor
对@ConfigurationProperties
的注释?这方面有什么进展吗?没有尝试过最新版本的Spring,但不知怎的,我对此表示怀疑:(
my.api.base-url=https://my.api.path/foo/bar
my.api.headers.Content-Type=application/json