我在尋找一種方法來Spring Cloud Config Server設定的系統變量(如-Djavax.net.ssl.keyStore),因爲我面對的正是這種行爲(https://stackoverflow.com/a/30199253/1406669)在一個共同的ssl環境。
有多種方法可以靜態設置它(https://stackoverflow.com/a/36895827/1406669 || https://gist.github.com/unamanic/a7eb0c17b78fb03617cc955b06285b1d)。
我不喜歡它的事情是靜態設置它(一旦在啓動時設置並且從未刷新)以及需要以靜態方式定義鍵。以這種方式,當需要引入新的系統變量時,我將不得不重新部署應用程序。這是我試圖避免的事情。
有人有想法嗎?如何從春季雲配置服務器設置系統變量
1
A
回答
0
刷新事件通過ApplicationChangeEvent工作,您的應用程序也可以通過實現ApplicationListener來偵聽該事件。
@Component
public class DynamicSystemProperties implements ApplicationListener<EnvironmentChangeEvent>{
private final Environment env;
@Autowired
public DynamicSystemProperties(Environment env) {
this.env = env;
}
@Override
public void onApplicationEvent(EnvironmentChangeEvent environmentChangeEvent) {
if(env.containsProperty("system.javax.net.ssl.keyStore")) {
String keystore = env.getProperty("system.javax.net.ssl.keyStore");
System.out.println("system.javax.net.ssl.keyStore - " + keystore);
System.getProperties().setProperty("javax.net.ssl.keyStore", keystore);
}
}
}
相關問題
- 1. 排除春季雲配置服務器
- 2. 春季啓動雲配置客戶端沒有拿起雲配置服務器URI引導設置?
- 3. 春雲配置服務器明文
- 4. 春天雲Brixton.RELEASE配置服務器
- 5. 在春季配置系統屬性
- 6. 如何從Java設置系統變量?
- 7. 如何在春季測試中設置環境變量或系統屬性?
- 8. 春雲配置服務器不使用配置文件
- 9. 爲什麼春季配置服務器客戶端失敗從配置服務器獲取配置?
- 10. 春季雲配置最佳實踐?
- 11. 春雲配置服務器 - 如何下載二進制文件
- 12. 春雲配置服務器(GIT) - 如何構建YML文件
- 13. 如何在春季雲配置中配置客戶端和服務器以使客戶端自動刷新
- 14. Spring雲配置服務器
- 15. 春季雲合同設置狀態
- 16. 春雲配置客戶端不加載從配置服務器值
- 17. 如何從外部設置系統編譯器變量sys.version
- 18. 使用IntelliJ Path變量,如何在Tomcat服務器中設置系統屬性運行配置?
- 19. 春季OAuth2資源服務器的Java配置
- 20. 春季配置服務器不刷新屬性
- 21. 系統或配置設置
- 22. 春天雲配置服務器不刷新
- 23. 春天雲自動刷新配置服務器屬性
- 24. 春天雲配置服務器併發控制
- 25. 春季服務器發送事件 - ResponseBodyEmitter已設置完成
- 26. 如何從Spring雲配置服務器讀取多個配置文件
- 27. 使用.NET C從azure雲服務讀取配置設置#
- 28. 從現有設置創建Azure雲服務配置
- 29. 春季Web流量配置錯誤
- 30. 設置春天雲中bootstrap.yml的配置文件以定位不同的配置服務器
也可以與http://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/env/EnvironmentPostProcessor.html –
@ElGohr的工作是真實的,但是這種方法還可以訪問在EnvironmentChangeEvent中更改的屬性(第一次運行時爲空)。如果你只是在某個屬性發生變化時才需要執行某些操作,這可能會更清晰。 – Unamanic