2016-01-22 83 views
0

我正在爲我的多模塊maven項目正確設置spring引導時出現問題。多模塊maven項目中的Spring引導配置

有一個模塊「api」使用另一個模塊「核心」。 Api有一個包含spring.mail.host = xxx的application.properties文件。根據Spring啓動文檔,這爲您提供了JavaMailSender接口的默認實現,可以自動裝配。

但是,負責發送電子郵件的類駐留在「核心」包中。當我嘗試構建該模塊時,構建失敗,因爲沒有找到JavaMailSender的實現。

我的猜測是郵件配置應該駐留在一個單獨的application.properties中的「core」中。我創建了它,並將spring.mail.host屬性從「api」移動到「core」屬性文件。

這次核心模塊成功構建,但由於相同的異常,「api」無法生成,所以我想我只是提出了這個問題。

我不明白處理這種情況所需的結構,所以我想知道正確的方法是讓「核心」模塊包含發送郵件的所有正確配置,並讓其他模塊使用郵寄代碼和駐留在其中的配置。

+0

你可以好好發佈stacktrace嗎? – WeMakeSoftware

回答

2

我發現了另一個堆棧溢出問題的答案:How to add multiple application.properties files in spring-boot?

原來有隻能在那年春天啓動創建最終的jar 1個application.properties文件。要擁有多個文件,您必須將其中一個文件重命名爲自定義。我命名了核心模塊「core-application.properties」的屬性。

然後API模塊中的我已將此添加到彈簧引導應用類:

@SpringBootApplication 
@PropertySource(value = {"core-application.properties", "application.properties"}) 

這樣做我能正確使用屬性文件的基極和在更具體的模塊覆蓋它們。您也可以使用此設置創建配置文件特定的屬性文件(core-application-production.properties),無需手動將它們添加到propertysource中)。請注意,此時@PropertySource不適用於yaml配置文件。

1

每個項目有一個有效application.properties。你只需要保存2個屬性文件以獲得成功構建。

api模塊使用core模塊時,核心模塊中的application.properties被覆蓋api

1

您的API的pom.xml必須具有CORE模塊的依賴關係。