And*_*ili 3 java spring annotations spring-mvc autowired
我是Spring框架中的新手,我对使用@Autowired注释和接口声明有一些疑问.
参考这个例子:
http://viralpatel.net/blogs/spring3-mvc-hibernate-maven-tutorial-eclipse-example/
我知道@Autowired注释可用于自动链接属性上的bean.
在前面的例子中,我有以下情况:
我有一个ContactDAO接口,它的实现类名为ContactDAOImpl
接下来在ContactServiceImpl类中,使用@Autowired对此变量进行了注释:
@Autowired
private ContactDAO contactDAO;
Run Code Online (Sandbox Code Playgroud)
我的第一个疑问是因为ContactDAO是一个接口,所以我接线的是什么?具体类型:ContactDAOImpl?如果是的话,Spring Framework是否可以做到这一点?
第二个疑问与spring-servlet.xml配置文件中没有针对ContactDAO orf ContactAOImpl类的bean定义有关...为什么?是不是因为ContactDAOImpl类使用annoted @Repository注解?
谢谢
安德里亚
我的第一个疑问是因为ContactDAO是一个接口,所以我接线的是什么?具体类型:ContactDAOImpl?如果是的话,Spring Framework是否可以做到这一点?
只要只有一个匹配的实现,Spring将自动为您提供接口的实现.通过使用@Qualifierwith @Autowired和命名实现,还有一种方法可以将来自多个候选项的单个实现与自动装配相匹配.
第二个疑问与spring-servlet.xml配置文件中没有针对ContactDAO orf ContactAOImpl类的bean定义有关...为什么?是因为使用@Repository注释来注释ContactDAOImpl类吗?
如果你使用的注释(@Component,@Repository,@Service,@Controller)在实现了配置,您不需要在XML明确定义豆(尽管你可以做到这一点也可以).
编辑:我的这个旧答案可能会更多地阐明在Spring中使用注释.