本文主要是介绍注解@ConfigurationProperties(prefix = my.test) @Autowired无法在apollo无法热更新到spring Context,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从apollo拉取配置的配置类: 其中@RefreshScope必须添加
@Component("testConfigProperties")
@ConfigurationProperties(prefix = "my.test")
@RefreshScope
public class TestConfigProperties {private String name;private String age;public String getName() {return name;}public String getAge(){return age;}public void setName(String names){name=names;}public void setAge(String age1){age=age1;}@Overridepublic String toString() {return "TestConfigProperties{" +"name='" + name + '\'' +", age='" + age + '\'' +'}';}
}
添加apollo的监听事件,然后刷新context
@Component
@Slf4j
public class TestRefresh implements ApplicationContextAware {private ApplicationContext applicationContext;/*** 测试属性注入*/@Autowiredprivate TestConfigProperties testConfigProperties;private final RefreshScope refreshScope;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext=applicationContext;}public TestRefresh(final RefreshScope refreshScope) {this.refreshScope = refreshScope;}@ApolloConfigChangeListener(value = {"application", "TEST1.apollo"},interestedKeyPrefixes = {"my.test."})public void onChange(ConfigChangeEvent changeEvent) {log.info("before refresh {}", testConfigProperties.toString());refreshScope.refreshAll();log.info("after refresh {}", testConfigProperties.toString());}}
修改apollo配置,@Autowired注入的bean同步改变。
这篇关于注解@ConfigurationProperties(prefix = my.test) @Autowired无法在apollo无法热更新到spring Context的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!