Я хочу создать сервис на основе данных конфигурации - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь создать сервис с помощью среды весенней загрузки.

Итак, сейчас у меня есть готовый сервис, и я хочу написать бин для своего сервиса.Однако то, как я это делаю, дает мне ошибку, что атрибут должен быть константой.Есть ли способ написать бин для генерации сервиса, как я хочу?

Файл конфигурации выглядит так:

@Configuration
public class ServiceConfig {

    static DataSource.Type dst = ...;
    static ItemSource.Type ist = ...;

    @Bean
    public ServiceEngine getServiceEngine (
            @DataSource( dst ) RuleStore < SKURule > rs,
            @ItemSource( ist ) SKUStore ss
    ) {

        return new ServiceEngine( rs, ss );
    }

    @Target({ElementType.FIELD,
            ElementType.METHOD,
            ElementType.TYPE,
            ElementType.PARAMETER})
    @Retention(RetentionPolicy.RUNTIME)
    @Qualifier
    public @interface ItemSource {

        Type value();

        enum Type {
            LOCAL,
            API,
        }
    }

    @Target({ElementType.FIELD,
            ElementType.METHOD,
            ElementType.TYPE,
            ElementType.PARAMETER})
    @Retention(RetentionPolicy.RUNTIME)
    @Qualifier
    public @interface DataSource {

        Type value();

        enum Type {
            LOCAL,
            S3,
        }
    }
    ...
    // other beans
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...