如何使用spel结果作为@value键

vsmadaxz  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(293)

在我的springboot应用程序中,我希望使用@value来读取一些configure,但是这个configure在许多其他方法中使用,因此我希望将configure的键定义为常量。下面是代码:

@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");
    }
}

在这个代码变量“support\u manager\u plane\u instances”中 @Value 以及 processConfigureChange 方法,如果需要修改这个变量的值我需要修改所有引用这个变量,所以我想定义一个常量变量
CONFIGURE_KEY @Value 以及 processConfigureChange 方法使用此变量。

daupos2t

daupos2t1#

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);
    }
}

相关问题