我們正在使用Play 2.1.1及其內置的JPA集成(JPA.em() 等)。如何在運行時更改Play 2 Framework DB配置?
- 我們如何動態更改db.pass屬性? Play.application()。configuration()似乎 在Play 2.1中是不可變的。 (或者我們至少不知道增變器)
- 如果我們能夠更改db.pass,我們如何重新加載數據庫配置,以便JPA.em()使用新密碼返回一個EntityManager?
我們試圖避免的是必須使用 EntityManagerFactory重新創建EntityManager。我們希望繼續讓Play在 中管理JPA幫助程序類。
背景
該系統具有本地運行一個默認的數據庫配置。當部署到服務器,數據庫密碼是動態上運行的應用程序使用以下腳本設置:
#!/bin/bash
stty -echo
read -p "Password: " PASS
stty echo
curl -k https://127.0.0.1:8443/someUrl/pwd --data "password=$PASS"
應用收到這樣的數據,然後重新創建休眠 SessionFactory的。我們新的Play應用將被要求做類似 的事情。
我正在嘗試做類似的事情。你能否提供更多關於我可以接觸到的細節。我的插件似乎在db配置執行後運行。 –
@ dom-farr我已經添加了關於鉤子的評論。 –
謝謝。這將工作。雖然我現在已經找到了那些討厭的變種,所以我可以擴大原始配置。 –