我在Spring框架中很新,我对使用@Autowired注释和接口声明有一些疑问。在Spring框架中使用** @ Autowired **注释和接口声明的一些疑问
参考下面这个例子:
http://viralpatel.net/blogs/spring3-mvc-hibernate-maven-tutorial-eclipse-example/
我知道@Autowired注解可以用来在属性会自动链接豆。
在前面的例子中,我有以下的情况:
我有一个的ContactDAO接口,它的命名ContactDAOImpl
接下来在类ContactServiceImpl实现类有这个变量使用annoted @Autowired:
@Autowired
private ContactDAO contactDAO;
我的第一个疑问是关于事实联系DAO是接口所以我布线什么?具体类型:ContactDAOImpl?如果是的话,Spring框架是做到这一点的吗?
第二个疑问是有关事实为spring-servlet.xml配置文件中没有一个bean definizion为的ContactDAO ORF ContactAOImpl类......为什么?是因为ContactDAOImpl类是使用@Repository注释?
感谢
安德烈
谢谢...另一个问题(也许是愚蠢的)...如果我有一个像上一个案例,巫婆我的ContactServiceImpl类中有一个自动化的ContactDao变量会发生什么,但我有两个不同的ContactDao实现接口?什么是Spring的选择? – AndreaNobili 2013-02-23 09:51:29
Spring会选择一个注释(使用Repository或另一个Spring组件注释)。如果两者都注释了,你会得到一个异常,并且必须使用限定符注释来指定你想要自动装配的那一个。这是记录:http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#beans-annotation-config – 2013-02-23 10:05:36