@Controller public class test { @Autowired private RoleDao rdi;
这样注入就没有问题,
而注入
@Controller public class test { @Autowired private RoleDaoImpl rdi;
别人说是spring的接口编程规范,硬性规定,求解释
把implementsRoleDao从RoleDaoImpl删掉,然后试试:
@Autowired
privateRoleDaoImplrdi;
你也可以设个断点,看看 rdi的类型
用接口的情况下应该是:$ProxyN
不用接口的情况应该是:<spanstyle="color:#444444;font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:normal;background-color:#FFFFFF;">RoleDaoImpl$$EnhancerBySpringCGLIB$$??????不用接口的情况,RoleBaoImpl是“null”,求解释!!!接口实现类的默认组件名字就是接口名,@Autowired没有指定名字,默认使用引用类的类名,这样就不存在一个RoleDaoImpl为名字的组件类这不是硬性规定,只是默认缺省规定而已,想怎么改都行回复<aclass='referer'target='_blank'>@koik:大小写?首字母小写@Resource(name="RoleDao")privateRoleDaoImplrdi;这样给他制定了组件,为何还是报一样的错啊。是不是因为没有加cglib?都可以,只是你用错了。你的实现类是否添加了spring依赖注入?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。