1 回答

TA貢獻(xiàn)1963條經(jīng)驗 獲得超6個贊
好的,所以我做了一個可行的解決方法。
(在幕后)對于我的情況,我在測試和 src 包中有 2 個數(shù)據(jù)源,當(dāng)我在 src 中測試方法時,他有@Autowired數(shù)據(jù)源并且他要求使用符合條件的 bean c1,但是因為我沒有c1數(shù)據(jù)源我testC1Config()得到了這個例外。
因此,我在 src 配置 bean 中編寫了帶有包含相同名稱的限定符的自動裝配setter ,而不是自動裝配一個 bean 并使用具有特定名稱的限定符。
@Autowired
@Qualifier("c1")
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
對于我的情況,我也在構(gòu)建 2 個 jdbcTemplates,這樣每當(dāng)我運行測試 Bean 時都會注入我需要的 DataSource 并在之前為我做一些事情@Test。如果這樣做,配置中不需要 bean 名稱,但在服務(wù)中@Qualifier("with_same_name_in_src_and_test")。
不知道這是否是解決此問題的好方法,但是......它有效。
添加回答
舉報