码迷,mamicode.com
首页 > 编程语言 > 详细

添加事务后 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type available

时间:2017-08-23 14:56:32      阅读:2047      评论:0      收藏:0      [点我收藏+]

标签:spring   work   manage   one   ext.get   ksh   tle   find   header   

今天遇到了一个奇怪的问题   在没添加事务之前  所有的代码都是好的 , 当我添加了事务之后, 代码报错

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type available

ApplicationContext:

 <!-- 配置事务 -->
 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource"></property>
 </bean>
 
<!-- 开启事务注解注入 -->
 <tx:annotation-driven transaction-manager="transactionManager"/>

BookShopServiceImpl

 @Transactional
 @Override
 public void purchase(String isbn, String username) {
//  1.获取书的单价
  int price = bookShopDao.findBookPriceByIsbn(isbn);
//  2.获取书的库存
  bookShopDao.updateBookStock(isbn);
//  3.更新用户信息
  bookShopDao.updateAccount(username, price);
 }

 

BookShopDaotest:

红色部分为添加的代码  , 然后机器认为有两个BookShopServiceImpl 类型的文件,但事实上只有一个。 

  bookShopDao = context.getBean(BookShopDaoImpl.class);
  bookShopService = (BookShopService) context.getBean("bookShopService");

之前是使用的是:

getBean(Class<BookShopDaoImpl> requiredType)

现在使用的是:

getBean(String name) throws BeansException最后在BookShopDao 中重新进行了Bean的获取  换了一种方式  用name的方式获取  而不是使用Class的形式

这样子机器就认识了。

还是需要自己去多学习下Spring的内部知识

添加事务后 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type available

标签:spring   work   manage   one   ext.get   ksh   tle   find   header   

原文地址:http://www.cnblogs.com/mythdoraemon/p/7417687.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!