Как включить класс @Configuration
, только если использовалась соответствующая аннотация @EnableCustomConfiguration
?
Чтобы было понятно, я пытаюсь воссоздать поведение общих аннотаций SpringBoot, например, @EnableEurekaClient
, @EnableWebSecurity
и т. Д.
Это мой активатор:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface EnableMultitenancy {}
Вот мои свойства конфигурации:
@Getter
@Setter
@Validated
@ConfigurationProperties("multitenancy")
public class MultitenancyProperties {
@NotEmpty(message = "You must provide at least one tenant")
private List<Tenant> tenants;
}
и это мой класс конфигурации:
@Configuration
@Conditional("On EnableMultitenancy used")
@EnableConfigurationProperties(MultitenancyProperties.class)
public class MultitenancyConfiguration{
@Bean
public MyFirstBean first(MultitenancyProperties properties){
return new MyFirstBean(properties);
}
@Bean
public MySecondBean second(MultitenancyProperties properties){
return new MySecondBean(properties);
}
}
Как я могу написать такое условие, например, аннотация использовалась для класса / компонента?