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

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

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的内部知识

posted on 2017-08-23 13:10  哆啦任意门  阅读(1056)  评论(0编辑  收藏  举报

导航