我使用彈簧引導設置了兩個數據源,如http://docs.spring.io/spring-boot/docs/1.3.0.M2/reference/htmlsingle/#howto-two-datasources所示,但是如果這樣做,我的application.properties
會顯示警告,例如x.x.username
是未知屬性。這在一定程度上是正確的,因爲javax.sql.DataSource
不包含網址,用戶名,密碼等,但實現類。我設置了註釋處理器,並且在使用具體類時工作正常。彈簧配置元數據
我注意到org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$NonEmbeddedConfiguration
同時使用DataSourceProperties
並且有@ConfigurationProperties
在dataSource()
上註釋。這可能會擺脫我的警告,但這是什麼意思。是不是這樣設置屬性兩次?
配置:
@Bean
@Primary
@ConfigurationProperties(prefix="datasource.primary")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix="datasource.secondary")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
屬性與警告:
datasource.primary.url=jdbc:...
datasource.primary.username=user
datasource.primary.password=password
datasource.secondary.url=jdbc:...
datasource.secondary.username=user
datasource.secondary.password=password
你能爲你的配置添加一些代碼嗎?彈出的警告在哪裏?編譯時間與運行時間?即使出現警告,應用程序是否正常工作? – hotzst
對不起,我想我已經離開了。該警告是STS中的編輯器警告。他們有一個特殊的編輯器用於彈簧啓動屬性文件。我只是在這些屬性上得到了黃色的下劃線,因爲註釋處理器正在生成一個META-INF/spring-configuration-metadata.json文件,它說它應該查看javax.sql.DataSource。我將在上面添加我的配置和一些帶有警告的屬性。這個問題真的涉及Spring Tool Suite,Spring Boot和@ConfigurationProperties。 – DeezCashews