mybatis遇到的坑——bean冲突
1.启动报错说这里fvFileCheckInfoDao有两个bean实例被定义,这个接口只有一个实现类,用的是@Autowired注解,正常情况下当接口只有一个实现类时,该实现类作为一个bean实例被注入到ioc容器中。
@Autowired 注解的注入规则:
经过一些代码的的测试,Autowired默认先按Type,如果同一个Type找到多个bean,则,又按照Name方式比对,如果还有多个,则报出异常。
@Resource注解的注入规则:
默认按byName自动注入。
它有两个关键的属性:name-名称,type-类型
如果指定了name,type,则从Spring容器中找一个名称和类型相当应的一个bean,找不到则报错。
如果只指定了name,则从Spring容器中找一个名称和name一样的bean,找不到则报错
如果只指定了type,则从Spring容器中找一个类型和type一样的bean,找不到或者找到多个则报错。
如果没有指定参数,则默认找字段名称装配,找不到则按类型装配,找不到则报错。
2.原因是Mapperscan扫描范围,当一个接口被扫描到时,这时 mabits 会把这个包的的接口以及子包的接口通通生成一个代理类注入都 IOC 容器中,key 就是接口的名字,而真正