2015-12-23 56 views
0

我有一個簡單的CRUD應用程序和後端代碼在dropwizard中。整個應用程序只包含簡單的資源類和crud操作,除了涉及一些業務邏輯的情況。dropwizard按需獲得jdbi連接

我想解壓縮到服務而不是將其放入資源類本身。但爲此,我的服務需要一個按需訪問的jdbi連接來訪問數據並完成它的工作。

我所有的連接字符串和配置值都在YML文件中。由於這個應用程序將運行在具有不同yml文件的不同服務器上,因此我不想將yml文件名進行硬編碼,以便再次讀取它,以獲取連接字符串並以此方式執行。

我該如何做到這一點?

+0

對不起,我錯過了這個問題。你想爲不同的服務器配置不同的配置嗎?每個服務器的連接字符串總是不一樣嗎?你是否使用DI與dropwizard或只是dropwizard? – pandaadb

+0

是的。連接字符串將是相同的,但它在yml文件中。所以我需要閱讀我嘗試創建的服務中的文件。我能夠通過使用ConfigFactory來實現此目的,但爲此我必須硬編碼我不想要的配置文件名,因爲它會從env更改爲env。這有幫助嗎?我沒有使用DI,因爲這只是一個CRUD應用程序,從來沒有覺得需要。 –

+0

仍然相關?我當時正在度假。您可能有幾個選項。我將配置更改爲只有1個yaml文件,並且有多個配置(分段,生產,本地)才能運行。然後在常規屬性文件中定義配置。您可以使用普通的Java閱讀它們。更好的是,雖然我認爲你會從你的yaml構建一個數據源工廠並直接注入。然後,您不需要閱讀配置,只需從工廠獲取連接即可。 – pandaadb

回答

0

你能探測到你的環境嗎?

如果是這樣,你可以做一些像$ {environment} .yml之類的東西嗎?

在Apache上有配置項目可能會有所幫助。

否則,就是它要運行

java -jar app.jar server dev.yml 開發和督促你想運行java -jar app.jar server prod.yml的情況?我想你在每個環境中都有單獨的守護進程。所以,如果你這樣配置它們,這些環境將會選擇正確的配置。否則,如果屬性名稱是相同的,但它們的值不同,並且您在正確的環境中選擇了正確的yml,則應該起作用。

如果我沒有解決您的問題,請您詳細說明您的問題?