我想基于配置数据创建服务

时间:2018-05-18 23:44:44

标签: java spring-boot dependency-injection

我正在尝试使用spring boot框架进行服务。

所以现在我准备好了服务,我想为我的服务编写一个bean。但是我这样做的方式是给我一个属性必须是常数的错误。有没有办法根据需要编写bean来生成服务?

配置文件如下所示:

@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
    ...
}

0 个答案:

没有答案