我有一个小Spring启动Web应用程序(可执行罐),它在application.properties文件中有一些自定义属性。我的目标是能够在运行时动态更改这些属性,而不必运行构建/部署或重新启动java进程。sping-Cloud-starter-config项目似乎非常适合于此(尽管我没有使用配置服务器),但我遇到了以下问题:
在我的pom里。xml I包括对spring boot starter actuator和spring cloud starter config的依赖关系。应用程序。属性在属性下面配置
management.port=8081
management.context-path=/management
management.security.enabled=false
foo=bar
我可以使用
curl http://localhost:8081/management/env/foo
{"foo":"bar"}
下面的更新似乎也成功了
curl -X POST -d foo=foo http://localhost:8081/management/env
{"foo":"foo"}
当我查询整个env时,我会在manager部分看到更改后的值,在applicationConfig中看到原始值
curl http://localhost:8081/management/env
{
...
"manager": {
"foo": "foo"
},
...
"configServerClient": {
"spring.cloud.config.enabled": "false"
},
...
"applicationConfig: [classpath:/application.properties]": {
...
"foo": "bar",
...
}
}
现在当我再次查询变量时,我仍然得到旧的值
curl http://localhost:8081/management/env/foo
{"foo":"bar"}
这与我在一些网络博客上读到的相反。在我的理解中,变化的值应该显示出来。我做错了什么?有没有更好的方法在不重启服务器的情况下动态更改application.properties中的值?
非常感谢你的帮助。
如果您使用的是大于2.2.4的spring启动版本,那么必须使用下面的属性手动启用POST API调用。
经营终点。环境。邮递启用=真
对我来说,它只适用于
curl -H "Content-Type: application/json" -X POST -d '{"name":"foo", "value":"bar"}' http://localhost:8081/management/env/
否则我会
"Missing parameters: value,name"
将更改发布到环境后,需要运行刷新
curl -X POST http://localhost:8081/management/refresh
我正在尝试使用spring cloud配置,1.3.0.release版本,我成功地启动了服务器 我尝试用下面的pom.xml构建简单的客户端 然后我使用mvn spring-boot:run,它总是停止 如果我添加依赖项 spring-boot-starter-web 它可以启动,但当我访问localhost:8080/env时,它总是返回404,这里缺少什么?
那是我学习Kafka的初期。我正在检查我本地机器中的每一个Kafka属性/概念。 所以我遇到了属性,下面是我的理解。如果我误解了什么,请纠正我。 将消息发送到主题后,必须将消息写入至少关注者数。 还包括引导。 如果可用活动代理的数量(间接地,在同步副本中)少于指定的,则生产者将引发发布消息失败的异常。 以下是我创建上述场景所遵循的步骤 在本地启动了3个代理,代理ID为0、1和2 创建了主题insy
但就是不管用。我也试过在-d中使用这个选项,但这也不起作用。 谢谢你的帮助
下面是我正在使用的配置。消息没有错误,从exchange到队列都可以正常工作,并且侦听器可以进行转换,这很好。对于错误消息,我希望发生的是,当我抛出AmqpRejectAndDontRequeueException时,“rabbitQueue”将消息转发到死信交换,并最终进入“rabbitErrorQueue”但死信交换或队列上没有任何活动。有人知道我做错了什么吗?
我正在开发一个带有的Spring Boot[web]REST风格的应用程序(因为它需要部署到现有的Tomcat服务器)。它有一个,其方法在调用时需要写入Redis。我让Redis服务器在localhost上运行(默认端口,没有密码)。POM文件的相关部分具有所需的启动器依赖关系: 当我部署战争并到达终点时,我得到这样的回应: 我在Spring Boot应用程序类中添加了以下内容: 在执行一些测试R
我正试图使用两个redis节点设置哨兵。请找到内联的conf文件。 端口16371 dir“C:\程序文件\redis\16371\” loglevel通知 日志文件“C:\Program Files\redis\logs\16371.log” 哨兵监视器示例127.0.0.1 6371 *致命配置文件错误*读取配置文件,在第5行 有人能帮我把这个修好吗。蒂亚:)