美文网首页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