2016-11-03 29 views
0

我已經創建了一個簡單的網絡應用程序,遵循「掌握Spring MVC」一書。一切正常,但是,在測試章節中,我用@Primary註釋創建了兩個bean。 1. ProviderSignInController和2.我的搜索服務類的Impl。這兩個都在軟件包src/test/java中。如何在Spring Boot中限制src/test/java的自動掃描?

這裏的問題是,如果我部署了我的應用程序,那麼即使這樣,這兩個bean也會出現,我無法使用我的實際身份驗證和搜索服務。

我沒有收到任何錯誤或異常。我想知道當我在開發環境中部署應用程序時,在測試和實際實現時自動注入我的模擬/存根的最佳方法是什麼。

源代碼鏈接是here。謝謝。

+0

指定活動的配置文件(S)這暗示着在構建過程中的錯誤。 來自src/test/java目錄的類不應包含在程序包目標的結果中。 這不會發生在一個正常的maven版本。 – DwB

+0

我正在使用Gradle。我會檢查一下。我沒有做任何特定的配置來避免測試。 – Yasin

回答

0

問題是我執行應用程序的方式。

當我直接從eclipse(運行爲Spring Boot App)啓動應用程序時,測試包含在構建中,因爲它們存在於類路徑中。

我修改了我的方法,現在我正在使用gradle build(gradle bootRun)啓動我的應用程序。這解決了這個問題。感謝@DwB提供的提示。

1

相反的@Primary,我建議使用沿側@Bean@Profile("PRODUCTION")你真正/生產豆/班& @Profile("!PRODUCTION")與測試豆/班。然後,在運行時

-Dspring.profiles.active=PRODUCTION, ...

相關問題