用@Autowired的时候,到底是写接口的名字还是实现类的名字呢?
有一点没明白,为什么注解@repository注解的是接口InjectionDAO的实现类InjectionDAOImpl,而在InjectionServiceImpl中定义的属性InjectionDAO injectionDAO自动装配,为什么最后得到的是InjectionDAOImpl的实例。
-----上面是某位同学的提问,我也有这样的疑问----
@Service注解服务层的时候,在unitest中,是从ApplicationContext.getBean("实现类名字,首字母小写") 这样获取的。
也就是说,在容器中初始化的Bean应该按照实现类名字规则。 这一点如果是用xml配置是不存在这样的问题,因为xml可以指定id, id 是接口,class指向实现类。
可以当老师讲 InjectionDAO 注入的时候,我以为也是需要 InjectionDAO injectionDAOImpl;这样来注入的,因为容器中存在的bean名字应该是@Repository注解的实现类,InjectionDAOImpl。
可以老师的例子是用接口名字的, 有其他规则?