当前位置: 首页 > 知识库问答 >
问题:

@refreshScope不工作-Spring引导

秋光熙
2023-03-14

我遵循这里描述的方法:https://github.com/jeroenbellen/blog-manage-and-reload-spring-properties,唯一的区别是,在我的例子中,属性在多个类中使用,所以我将它们放在一个实用工具类cloudconfig中,并使用getter引用它的变量。这就是类的样子:

@Configuration
@RefreshScope
public class CloudConfig {

    static volatile int count; // 20 sec

    @Value("${config.count}")
    public void setCount(int count) {
        this.count = count;
    }

    public static int getCount() {
        return count;
    }

}

我在其他类中使用变量count,比如cloudconfig.getcount()。我能够加载的属性启动只是很好,但我不能动态更新他们在飞行。有人能说出我做错了什么吗?如果我没有创建这个配置类,而是按照教程中描述的那样做,那么一切都很好,但我很难使它适应我的用法。有人能说出我错过了什么吗?

共有1个答案

边意
2023-03-14

尝试使用@ConfigurationProperties。例如。

@ConfigurationProperties(prefix="config")
public class CloudConfig {

    private Integer count;

    public Integer count() {
        return this.count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

}

spring cloud的引用文档声明:

@refreshScope(从技术上讲)适用于@configuration类,但它可能会导致令人惊讶的行为:例如,这并不意味着该类中定义的所有@beans本身都是@refreshScope。具体地说,任何依赖于这些bean的东西都不能依赖于它们在刷新启动时被更新,除非它本身在@refreshScope中(在该范围内,它将在刷新时重新构建,并重新注入其依赖项,此时它们将从刷新的@配置中重新初始化)。

 类似资料:
  • 这是我的安全配置代码: 但在编译spring时,仍在为我生成密码。 我通过print语句检查了配置是否正在加载,发现安全配置正在加载。我是否应该对给定的用户ID和密码进行任何更改。 提前感谢。

  • 我正在使用Spring引导2.0.1。释放,使用Spring引导启动器胸腺。我有两个版本的个人电脑和手机页面。 下面是我的项目结构的一个简单版本 我想让该网站自动检测PC浏览器和手机浏览器,这样它就可以根据浏览器的类型将相同的请求URL映射到不同的页面 html文件非常简单,如下所示。 这是我的控制器的代码。 为了检测设备,我编写了以下配置类 然后当我试图运行应用程序时。我总是得到下面的错误。它似

  • 我已经尝试使用Config Server实现spring外部配置。当应用程序启动时,它第一次工作得很好,但对属性文件的任何更改都不会反映出来。我试图使用/refreshendpoint来动态刷新我的属性,但它似乎不起作用。在这方面的任何帮助都将是非常有帮助的。 我尝试向localhost:8080/refresh发帖,但得到404错误响应。 下面是我的应用程序类的代码 和bootstrap.pro

  • 我添加了执行器依赖 按照教程中的建议 但是当我点击时,它不会给出预期的结果。上面写着 Spring Boot版本为1.5.4。和Java1.8需要做哪些附加设置?

  • 大家好,我已经为我的应用程序安装了引导程序,它并不工作。这是我的application.scss档案 这是我的申请表。rb文件: application.js文件: 最后是我的Gem文件: 以下是我在尝试向网页添加导航栏时得到的信息:

  • 打电话pp.java 电话JAVA 基本电话。JAVA 智能手机。JAVA 测验JAVA 即使我给限定符为在类,我得到异常如下: 没有定义类型[com.geekslab.device.Phone]的限定bean:预期单个匹配bean,但发现2:BasicPhone,SmartPhone