V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rizon
V2EX  ›  程序员

spring 中 @value 注解的属性可以通过配置中心更新吗

  •  
  •   rizon ·
    othorizon · 2019-02-18 11:44:22 +08:00 via iPhone · 4034 次点击
    这是一个创建于 1884 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我知道的是用 @configurationproperties 注解的类,在配置中心下发新的配置的时候,可以不重启服务器直接更新。
    但是不记得 @value 注解的可以吗?
    11 条回复    2019-02-18 21:33:20 +08:00
    rizon
        1
    rizon  
    OP
       2019-02-18 11:51:14 +08:00 via iPhone
    刚才查了下资料,应该是可以的吧?
    Loofer
        2
    Loofer  
       2019-02-18 11:57:38 +08:00
    你需要了解 Spring Cloud Config 原理
    DesertCamel
        3
    DesertCamel  
       2019-02-18 12:07:13 +08:00 via Android
    可以啊,spring cloud 中的配置中心意义就是这样。配置 mq 作为消息总线。
    jc4myself
        4
    jc4myself  
       2019-02-18 14:04:24 +08:00
    很简单的。 @RefreshScope 了解一下
    rockyou12
        5
    rockyou12  
       2019-02-18 14:09:02 +08:00
    携程那个 apollo 也可以的,而且不需要配置 mq 就能刷新。不过用法好像稍微有点不同
    deeplee
        6
    deeplee  
       2019-02-18 14:43:12 +08:00
    可以的,@RefreshScope
    rayingecho
        7
    rayingecho  
       2019-02-18 16:02:34 +08:00
    可以但是尽量避免这么用
    @Value 的值需要给 Bean 标注 @RefreshScope 来更新, 背后的实现是给对象加了一层代理, 每当配置发生更新时将旧的对象销毁后重建一个新对象, 副作用很大
    假如是一个仅仅用来存储配置值的对象, 那应该用 @ConfigurationProperties
    rizon
        8
    rizon  
    OP
       2019-02-18 20:12:28 +08:00
    @rayingecho #7 嗯嗯,使用 @ConfigurationProperties 就不需要加 @RefreshScope 了吗?
    rayingecho
        9
    rayingecho  
       2019-02-18 20:16:18 +08:00
    @rizon 是的
    rizon
        10
    rizon  
    OP
       2019-02-18 20:33:19 +08:00
    @rayingecho #9 好的 谢谢哈
    xuxueli
        11
    xuxueli  
       2019-02-18 21:33:20 +08:00 via Android
    http://www.xuxueli.com/xxl-conf/

    动态推送更新,实时生效
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1505 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:06 · PVG 01:06 · LAX 10:06 · JFK 13:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.