首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新Spring引导自动配置的属性

刷新Spring引导自动配置的属性
EN

Stack Overflow用户
提问于 2018-06-04 20:24:30
回答 2查看 1.9K关注 0票数 4

我可以动态刷新Spring的自动配置设置所使用的属性吗?

例如,我设置了以下属性(通过云配置)来自动配置dataSource

代码语言:javascript
复制
spring.datasource.username=user1
spring.datasource.password=test

现在,如果我更改配置服务器上的密码支柱,并点击/refresh端点,我可以看到更新后的DataSource已被检索,但DataSource没有刷新。

我知道我可以手动配置DataSource bean,并确保它们属于RefreshScope,但我希望找到一种将自动配置的属性标记为“刷新”的方法。我有一些用例需要刷新Spring使用的道具,用于DataSources以外的其他bean,手动设置这些bean可能会很痛苦。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-08 20:27:13

我觉得我说得太快了,至少就我的DataSource例子来说是这样。正在使用更新的道具创建一个新的db连接。

这是有意义的,特别是在查看docs 这里时。

这没有重新连接我所拥有的一些spring.cloud.stream.bindings属性,但在这种情况下,我可能可以用@RefreshScope解决这个问题。

票数 1
EN

Stack Overflow用户

发布于 2021-03-02 22:03:15

在自动配置bean不可变的情况下,需要设置一个配置属性(初始化后不要更改属性)

您可以放置需要刷新的类的列表(集合),并且无法控制源代码,可以将它们放在属性:spring.cloud.refresh.extra-refreshable下面

例如:

代码语言:javascript
复制
spring
  cloud
    refresh
      extra-refreshable:
        - org.springframework.mail.javamail.JavaMailSenderImpl

请参阅:https://cloud.spring.io/spring-cloud-static/Greenwich.SR1/single/spring-cloud.html#refresh-scope

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50688245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档