实际上,我正在与Spring Cloud Gateway合作一个项目。
我有一个配置类,它从一个定制的PropretySourceFactory获取其属性。我想对属性进行热重新加载,所以我调用了actuator/refresh(curl-localhost:8080/actuator/refresh-d{}H“Content-Type:application/json”),但它不会重新加载我的配置属性。没有错误或异常。
这是配置类:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
@ConfigurationProperties
@PropertySource(value="", factory=NatsPropertySourceFactory.class)
public class NatsConfiguration {
private String apiKey;
private String apiKeyConsumer;
private String apiKeyValidity;
private String apiKeyCreation;
private int ratelimitMaxTokens;
private int ratelimitReplenishFrequency;
private int ratelimitReplenishRate;
// Getters and setter
//...
}
PropertySource上的值为空,因为我不会从文件中获取配置,而是从html" target="_blank">消息队列中获取配置。
和NatsPropertySourceFactory:
public class NatsPropertySourceFactory implements PropertySourceFactory{
final private NatsConfigurationService natsConfigurationService = new NatsConfigurationServiceImpl();
@Override
public PropertySource<?> createPropertySource(String arg0, EncodedResource arg1) throws IOException {
MapPropertySource result = null;
Logger log = LoggerFactory.getLogger(this.getClass());
try {
result = new MapPropertySource("nats", natsConfigurationService.getConfiguration());
} catch (ConfigurationException e) {
log.error("RECUPERATION DE CONFIGURATION DEPUIS NATS EN ERREUR", e);
System.exit(1);
}
return result;
}
}
我的属性不与@Value一起使用,所以我不需要@Re鲜Scope。当我调用时 /actuator/refresh不会重新创建NatsConfiguration类。
关于信息,我使用webflux和SpringSecurity(启动器URL是允许的:路径匹配器(“/actuator/**”)。permitAll())
@EnableWebFluxSecurity
@EnableWebFlux
public class SecurityConfiguration implements WebFluxConfigurer {
我哪里错了?
顺便说一句,我发现了/actuator/refresh的确切行为:它重新实例化@Configuration类,但对PropertySourceFactory没有任何作用。
我找到了一个解决方法:我创建了一个REST控件,它调用属性源工厂的createProperty tySource方法,然后调用 /actuator/refreshurl。它完全符合我的要求:@Configuration类是最新的,具有属性源工厂给出的新属性。
问题内容: 这是一个非常基本的问题-但我无法通过在线搜索找到答案。 我正在使用python控制ArcGIS,并且有一个简单的python脚本,该脚本调用了一些预先编写的代码。 但是,当我对预写代码进行更改时,它似乎没有导致任何更改。我导入了此模块,并尝试刷新它,但是没有任何反应。 我什至将它调用的文件移到了另一个位置,脚本仍然可以正常工作。昨天我做的一件事是我将所有python文件都添加到sys路
vue2开发 需求是没间隔多上时间请获取一次token、token是10分钟有效、我需要在7分钟的时候刷新一次token、然后我使用的是setInterval()方法 没7分钟请求一次, 但是出现的问题是、页面刷线以后setInterval()方法又重新执行了一次、导致没有正常刷新token 如何解决setInterval页面刷新以后不再重新执行 或者利用其他方法
问题内容: 我正在尝试实现一些功能,即单击屏幕上的按钮将导致我的[QuerydataTable刷新(因为自创建dataTable以来服务器端数据源可能已更改)。 这是我所拥有的: 但是当我运行它时,它什么也没做。单击按钮时刷新dataTable的正确方法是什么?提前致谢! 问题答案: 您可以尝试以下方法:
问题内容: 我正在使用Java进行项目,因此需要在单击特定按钮后重新加载整个程序。这该怎么做? 问题答案: 尝试 如果仍然无法使用,请在完成上述步骤后尝试
问题内容: 我在一个选项卡中有一个数据表,该表是从索引方法上的控制器发送的数据中加载的。 我有加载数据表的视图 然后在加载页面时在javascript中加载数据表 我也有删除功能。如何在不重新加载页面的情况下重新加载数据(使用Ajax从控制器再次获取数据)? 问题答案:
我有一个使用自由服务器运行的微服务。我有一组配置属性,这些属性不能直接使用@Value或@ConfigurationProperties或@Configuration使用。 属性结构: 我有申请。yml组件 和引导。属性为 现在我已经实现了一个配置服务器,它正在从git repo读取属性文件。配置文件结构: appname-dev.yml 在客户端中,我配置了引导。yml组件 每当我更新git r