我有一個用@Configuration註釋的AppConfig類,它有各種不同的bean定義,其中包含執行第三方命中應用程序的bean。現在在我的Spring集成測試用例中,我不希望這些bean被初始化。那就是我創建了另一個名爲TestAppConfig的bean,它用@Configuration註釋,我嘲笑所有執行第三方命中的bean。現在在我的testContext.xml中,我正在向上下文添加一個排除過濾器:component-scan其中我指定要排除的AppConfig包。但不知何故,這個AppConfig每次都被初始化。我曾嘗試適當的正則表達式,但仍然沒有工作。如果有人知道原因,那麼請分享。如何從testContext.xml中的組件掃描中排除@Configuration類
0
A
回答
2
看到你使用Spring 3.2的評論後,你可以看到here對於舊版本的春天的使用@profile
您可以使用@profile註釋,以確定哪些@Bean將被創建或不。
例子:
定義的bean低於
@Bean
@Profile("production")
public DataSource prodDataSource() {
...
return dataSource;
}
@Bean
@Profile("development")
public DataSource devDataSource() {
...
return dataSource;
}
有關配置文件名爲 「發展」
- 在app.properties
spring.profiles.active=development
prodDataSource
不會調用編輯。但devDataSource
將被稱爲
有關配置文件稱爲 「生產」
- 在app.properties
spring.profiles.active=production
prodDataSource
不會被調用。但devDataSource
將被稱爲
+0
使用@profile爲我工作。這是我如何解決我的問題。使用@profile(「test」)註釋我的testAppConfig,並在其各自的測試基礎結構設置中添加@activeProfiles(「test」)。並用@profile(「!test」)註釋了我的AppConfig。這種方式當我的應用程序啓動時,即使我沒有明確地傳遞任何配置文件,它只是檢查當前配置文件沒有測試,因此拿起配置。 –
相關問題
- 1. 如何從使用CDI單元掃描中排除類別?
- 2. Spring組件從jar中掃描類?
- 3. CDI:從掃描中排除類的註釋
- 4. 如何從發現它的註冊表掃描中排除外部類型?
- 5. 從中心掃描數組
- 6. 爲什麼組件掃描沒有找到我的@Configuration?
- 7. Spring3的@Configuration不能@Inject組件掃描豆
- 8. 春季組件掃描類
- 9. Git Gui:如何從重新掃描中排除不必要的文件
- 10. 春 - 將包中的bean從掃描中排除
- 11. 條碼掃描排除AVmetadaTypeFace
- 12. SonarQube掃描文件/目錄排除
- 13. 掃描@Configuration類和@Import配置類之間的區別
- 14. 從文件中掃描C
- 15. 如何掃描單詞並存儲從C中掃描的行?
- 16. 排除通過組件掃描添加的攔截器
- 17. 組件掃描不掃描子包
- 18. 我正在嘗試排除文件中的聲納掃描
- 19. 如何複製Spring的組件掃描
- 20. StructureMap掃描組件
- 21. 如何在使用MSBuild掃描儀時排除單個文件
- 22. java中的掃描器類
- 23. 掃描,掃描儀類
- 24. 用於MSBuild的SonarQube掃描儀:排除
- 25. Java中的掃描類或jar文件
- 26. 排除Spring組件特定類掃描而寫Spring集成測試
- 27. 如何掃描從Android的
- 28. 從數組中掃描數字
- 29. Delphi的TWAIN掃描組件
- 30. Spring MVC的組件掃描
使用'@ Profile'或'@ Conditional' – pvpkiran
不幸的是因爲我使用的彈簧3.2.16 –
我不能使用@Conditional顯示你的配置,以及如何啓動應用程序。 – StanislavL