目的是测试事务管理,通过面向切面编程和配置文件的方式

原码如下:

接口:

 

实现类:

测试方法:

 报错:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.atguigu.crowd.service.api.AdminService'

原因分析:报错说没有找到有资格的AdminService这个类,但AdminService的实现类有注解@Service,不应该找不到,但发现另一个问题,就是实现类中AdminMapper没有加上注解@Autowired,按道理这应该是报空指针异常的,那么找不到类的原因到底是什么呢?

看完下图就知道了:

 我进行的测试是通过spring自带的测试工具进行测试的,且没有配置web.xml进行扫描,也没有造IOC容器classPathXMLApplicationContext,那么数据控制的配置文件是不会读取或者说加载到内存中的。

 解决方案

只需在注解@ContextConfiguration后加上事务配置文件的classPath就可以了

@ContextConfiguration(locations = { "classpath:spring-persist-mybatis.xml","classpath:spring-persist-tx.xml" })

Logo

鸿蒙生态一站式服务平台。

更多推荐