Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException : No qualifying bean of type [so.dian.dev.device.interfaces.IDeviceInfoSV] is defined: expected single matching bean but found 2: deviceInfoSVImpl,IDeviceInfoSV
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency( DefaultListableBeanFactory.java:1126 )
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency( DefaultListableBeanFactory.java:1014 )
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject( AutowiredAnnotationBeanPostProcessor.java:545 )
... 19 more
首先说下我的工程结构:controller——>manager——>sv——>dao
可以看出上面的异常是因为mybatis的自动扫描扫到了sv层的接口,mybatis会拿这个sv接口与mapper去匹配,而mapper里配置的都是dao层的
< mapper namespace = "so.dian.dev.dao.device.IDeviceInfoDAO" >
所以当然找不到了。解决的办法就是不让他扫到sv层的接口,使用 @MapperScan("so.dian.dev.dao") 这个注解
@SpringBootApplication
@PropertySource ({ "variables.properties" , "resource.local.properties" })
@MapperScan ( "so.dian.dev.dao" )
@EnableCaching
public class Application extends SpringBootServletInitializer{