第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有@Qualifier @Autowired 值的測試類

帶有@Qualifier @Autowired 值的測試類

白豬掌柜的 2023-03-09 14:08:02
我正在測試一個有價值的類@Qualified @Autowired:// class under testclass C1() {    @Autowired    @Qualified("c1")    DataSource d1;    ...}DataSourced1位于配置文件中。但是當(dāng)我測試同一個類并且我使用單獨的DataSource測試配置類時:// test for class@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes = testC1Config.class, loader=AnnotationConfigContextLoader.class)class testC1() {    @Autowired    @Qualified("c1Test")    DataSource d1Test;    ...}// testC1Config@Configurationclass testC1Config() {    @Bean    @Qualified("c1Test")    DataSource c1Test() {    ...    }}我得到這個例外:Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.sql.DataSource] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=c1)}說他只看到只有 Qualifier 的 DataSource Bean c1。嘗試使用@Bean(name=c1Test")但我得到相同的結(jié)果..我如何讓他看到測試包中的 c1Test DataSource bean?
查看完整描述

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")。


不知道這是否是解決此問題的好方法,但是......它有效。


查看完整回答
反對 回復(fù) 2023-03-09
  • 1 回答
  • 0 關(guān)注
  • 102 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號