我想要了解@Au牛毛注释到底是如何工作的。
import com.test.WorkFlowDAO;
public class ServiceCentralBOImpl implements IServiceCentralBO
{
/**
* Logger for logging functionality.
*/
private static final Log log = LogFactory.getLog(ServiceCentralBOImpl.class);
@Autowired
private WorkFlowDAO workFlowDAO;
.
.
.
}这个bean在我的SpringapplicationContext.xml文件中声明:
<bean id="workflowDAO" class="com.test.WorkFlowDAO">
</bean>仔细检查后,您可以看到Java类中的两个ID和上下文XML文件是不同的。
workFlowDAO和
workflowDAO
字母'f‘在两个ID中是不同的
由于即使使用此配置,我的应用程序也运行得很好;我想知道,@Autowired注释是如何工作的,这样它就不会在bean ID不完全匹配时抱怨。
在使用简单bean的情况下,Spring会抱怨bean名称不匹配。
我正在Websphere AppServer7.0上使用Spring3.0.5运行一个J2EE应用程序
如果需要更多的信息,请告诉我。
发布于 2011-11-17 09:03:30
@Autowired按类型匹配bean。不考虑ID。
如果在XML配置中声明另一个相同类型的bean,Spring会抱怨无法确定正确的bean。
如果您希望与@Autowired一起使用is,则可以通过使用@Qualifier来实现,尽管在本例中建议使用@Resource。
可以找到关于这个主题的更多信息,这里。
发布于 2011-11-17 09:09:38
完全同意第一个意见。
如果您希望您的bean是自动命名,您可以考虑使用@限定符(“givenName”)。
详情见:
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html
https://stackoverflow.com/questions/8164381
复制相似问题