美文网首页IT修真院_JAVA
ApplicationContext无法加载bean的问题

ApplicationContext无法加载bean的问题

作者: 魏杨 | 来源:发表于2017-05-10 23:09 被阅读0次

    遇到的问题:Bean没有找到

    (NoSuchBeanDefinitionException: No qualifying bean of type [com.dao.Dao] found for dependency:)

    解决过程:

    我就通过分析整个bean加载流程,来提示过程中可能出错的地方。

    (一)

    Context(上下文)相当于一个“容器”,起到承上启下的作用,可以加载bean、也可以调用其中的bean。

    ApplicationContext(bean容器)

    它可以加载配置文件中定义的bean,将所有的bean集中在一起,当有请求的时候分配bean。

    ApplicationContext实现方式(获得bean):

    1.FileSystemXmlApplicationContext

    2.ClassPathXmlApplicationContext

    注意:要加载哪个bean就添加对应的bean配置文件。Bean配置文件出错会出现无法加载bean的问题。

    =========================================================

    (二)

    jdbc

    我们在做jdbc的时候会编写Dao接口和Dao实现类。

    缺点:

    (1)dao接口实现类方法中存在大量模板方法,如:通过SqlSessionFactory创建SqlSession,调用SqlSession的数据库操作方法。

    (2)调用sqlSession的数据库操作方法需要指定statement的id,这里存在硬编码(就是在程序中将代码写死)。

    mybatis框架

    Mapper动态代理方式:只需要写Mapper接口,然后按照规范进行配置,MyBatis就会自动实现类似Dao实现。

    spring+mybatis框架

    mybatis-spring.jar包中提供了MapperScannerConfigurer(API)

    根据指定包批量扫描Mapper接口生成实例,并注册对应的MapperFactoryBean对象。如下图:

    注意:如果扫描包的位置出错,也可能出现找不到bean的情况。

    前面的ClassPathXmlApplicationContext("classpath:conf/spring*.xml");

    会自动扫描“以sping为开头的”xml配置文件中的bean。并注入到ApplicationContext中。


    -----------------------------------------------------------------------------------------------------------------------

    技能树.IT修真院

    “我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

    这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧 !IT修真院http://www.jnshu.com/login/1/10031132

    相关文章

      网友评论

        本文标题:ApplicationContext无法加载bean的问题

        本文链接:https://www.haomeiwen.com/subject/qcdntxtx.html