SpELの結果を@Valueキーとして使用する方法

Nov 20 2020

私のspringbootアプリケーションでは、@ Valueを使用していくつかの構成を読み取りたいのですが、この構成は他の多くの方法で使用されているため、構成のキーを定数として定義します。これはコードです。

@Component
public class InstanceConfig {

    private static final String CONFIGURE_KEY = "SUPPORT_MANAGER_PLANE_INSTANCES";

    @Value("${SUPPORT_MANAGER_PLANE_INSTANCES}")
    private String supportManageInstances;
    
    @ApolloConfigChangeListener(value = ConfigConsts.NAMESPACE_APPLICATION)
    public void processConfigureChange(ConfigChangeEvent event) {
        log.info("configure changed do somthing");
        ConfigChange configChange = event.getChange("SUPPORT_MANAGER_PLANE_INSTANCES");
    }
}

@ValueandprocessConfigureChangeメソッドで使用されるこのコード変数「SUPPORT_MANAGER_PLANE_INSTANCES」では、この変数の値を変更する必要がある場合は、すべてこの変数を参照するように変更する必要があるため、1つの定数変数CONFIGURE_KEY @Valueを定義し、processConfigureChangeメソッドでこの変数を使用します。

回答

1 TongChen Nov 20 2020 at 14:16

Thans @ hirarqiの助け

@Component
public class InstanceConfig {

    private static final String CONFIGURE_KEY = "SUPPORT_MANAGER_PLANE_INSTANCES";

    @Value("${" + CONFIGURE_KEY + "}")
    private String supportManageInstances;
    
    @ApolloConfigChangeListener(value = ConfigConsts.NAMESPACE_APPLICATION)
    public void processConfigureChange(ConfigChangeEvent event) {
        log.info("configure changed do somthing");
        ConfigChange configChange = event.getChange(CONFIGURE_KEY);
    }
}