我有一個用戶可以在自己的服務器上部署的彈簧web應用程序。應用程序運行後,管理員可以從前端設置數據庫URL和憑據,並且沒有默認設置。我不知道如何使用spring/hibernate來做到這一點,因爲在我的spring容器的初始化過程中創建LocalSessionFacytoryBean後,我的數據源就會被連線。在運行時更改彈簧數據源設置
回答
如果您的應用程序服務器支持它並且它不會讓您的用戶變得複雜,那麼您可以使用JNDI數據源。它們可以在應用程序服務器上進行配置,但與在運行時更改它們不同。
您可以在運行時使用自定義數據源構建SessionFactory
對象,並使用該對象。沒有什麼能阻止你。
這樣做的問題是我的會話工廠在彈簧容器的初始化過程中無法接入,因爲它直到以後的日期才被設置。這意味着一旦創建了sesssion工廠,我必須在運行時明確地設置所需的依賴關係,或者我錯過了什麼? – mogronalol
是的,你可以手動創建一切,然後把它放在彈簧 – Bozho
我還沒有跟着你。我將不得不從我的WebApplicationContext中檢索需要會話工廠的每個bean,然後在運行時創建該類字段。從某種意義上說,這看起來並不是最優雅的做事方式和打破IOC的方式 - 我寧願在某種類型的會話工廠代理中進行自動裝配,然後在創建代理後更改該代理的會話工廠。有沒有辦法做到這一點? – mogronalol
- 1. 彈簧引導數據源設置
- 2. 在運行時設置數據源值
- 3. 運行時帶有多個數據源的彈簧批處理
- 4. 如何設置彈簧數據的JPA與多個數據源
- 5. 配置彈簧 - 兔子隊列地址在運行時可更改
- 6. 在運行時更改CoreNLP設置
- 7. django:在運行時更改設置
- 8. 在運行時更改Django設置
- 9. WinForms - 在運行時更改控件的綁定源/數據源?
- 10. 彈簧休息資源更改路徑
- 11. 彈簧數據JPA多個數據源
- 12. 如何在使用彈簧數據時設置ProtocolVersion cassandra xml config
- 13. 彈簧數據JPA - 選擇更新行
- 14. FileNotFoundException在加載類路徑資源時運行彈簧測試
- 15. 如何根據租戶選擇運行時的彈簧配置?
- 16. 彈簧配置元數據
- 17. Pytest和Django設置運行時更改
- 18. 運行時更改PhantomJS代理設置
- 19. 測試時使用數據源進行彈簧啓動
- 20. 帶有彈簧數據的多個數據源 - 需要設置屬性continueOnError
- 21. 如何在運行時從數據源嚮導更改連接?
- 22. 在運行時延遲更改SessionFactory數據源jdbcurl
- 23. 在運行時Grails更改數據源(JDBC URL)
- 24. 在運行時更改Kendoui Multiselect的數據源
- 25. 更改彈簧安全配置
- 26. 在運行時設置一個報表數據源實例
- 27. 在運行時爲報告設置數據源?
- 28. Wildfly - 在運行時設置數據源密碼
- 29. 在運行時更改數據庫codeigniter
- 30. 在運行時設置NHibernate數據庫
看來你並沒有使用OSGi,但是如果你是這樣的話,你可以將你的DataSource作爲一個osgi服務公開,並根據需要註冊/取消註冊這些服務(以及它們包含的)bundle以更改你的DatSource。 – whaley
'爲他們的機構部署':究竟意味着什麼?將有一個數據庫和一些Web服務器運行在他們的服務器上,並部署你的戰爭呢? –