有沒有一種方法可以包含基於配置文件的自動配置? (這將是很好,如果有spring.autonfigure.include
)彈簧引導自動配置包括
我想連接到一個h2數據庫進行測試和本地開發。爲了便於開發,我希望DataSourceAutoConfiguration.class
,HibernateJpaAutoConfiguration.class
和DataSourceTransactionManagerAutoConfiguration.class
自動配置。但是,我希望能夠輕鬆切換到在應用程序服務器中定義並在Configuration類中配置的Oracle數據庫。當切換到Oracle數據庫,我需要排除上述自動配置類:
// This only works for the oracle database - need to include autoconfig
// classes for h2 database
@SpringBootApplication(
exclude = {
DataSourceAutoConfiguration.class,
HibernateJpaAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class },
scanBasePackages = {
"foo.bar"
})
我有一個「H2」配置文件配置H2數據庫和其他幾個配置文件中,我想活數據庫(本地,開發,測試,質量,產品)。我可以在每個實時數據庫配置文件上使用spring.autoconfigure.exclude
屬性,但有時我想在本地「實時」和h2數據庫之間切換。我也可以弄清楚被排除的自動配置類正在做什麼,並在「h2」配置文件中手動配置,但我寧願不重複努力。
任何人都有如何完成這個想法?
您是否嘗試過分離@ @ SpringBootApplication'並使用'@ Profile'註釋了特定配置?你知道只要改變'spring.datasource.url'應該做你需要的嗎? – chrylis
爲什麼在連接到oracle時需要禁用自動配置?只需提供一個'application-prod.properties'並在那裏配置Oracle數據源。另外,如果您提供自己的實例,則不需要排除自動配置,Spring Boot足夠智能以檢測「DataSource」的存在並對其執行操作。但正如所說的,只是創建一個不同的'application.properties',並讓spring啓動根據配置文件決定加載哪一個。 –
我能夠分離'@ SpringBootApplication'並使其正常工作。應用程序服務器(JBoss)配置數據源,因此我必須通過配置類來配置數據源。我需要禁用事務管理,因爲我需要在連接到oracle時使用JBoss。 – greggnic