No qualifying bean of type'xxx'available問題解決

3049 ワード

プロファイルにはスキャンするパッケージが書かれていません.つまり、この言葉:
<context:component-scan base-package=" " />

ユニットテストコード:
//  import

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:spring.xml"})
public class MapperTest {

    @Autowired
    DeptMapper deptMapper;

    @Test
    public void testDeptAdd() {
        System.out.println(deptMapper);

    }
}

私の問題を話しましょう.私がユニットテストをしていたとき、このエラーが発生しました.ネットで調べてみると、プロファイルにスキャンパッケージ情報が書かれていません.ロードされているのはspringです.xmlファイル、このファイルで探しました.
spring.xmlファイル
        
        <context:component-scan base-package="com.ssm" />

                

        
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            
            <property name="basePackage" value="com.ssm">property>
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory">property>
        bean>

スキャンパッケージの情報を書きましたが、どうしてエラーが発生しますか?context:component-scanラベルの内容をもう一度よく見て、ああ!スキャンしたバッグを書き間違えた.修正後、テストコードを再実行するか、それともこのエラーが発生するか、本当にどうすればいいか分かりません.仕方なく他のどこかが間違っているかどうかを見続けたが、この探しは本当に問題を発見した.「すべてのdaoインタフェースの実装をスキャンし、iocコンテナに追加する」という注釈の下のパッケージ名がまた書き間違えた.ああ!本当に不注意ですね.注釈が書いてあるのに書き間違えた!本当にバカですね.
まとめ:スキャンパケットの構成情報をうっかり書き忘れたり、スキャンパケットの構成情報を書いたりしたがパケット名が間違っていると、このエラーが発生します.