gpt4 book ai didi

spring - Spring 3 中的@Autowired 注释行为

转载 作者:行者123 更新时间:2023-12-03 19:10:16 28 4
gpt4 key购买 nike

我想了解@Autowired 注释究竟是如何工作的。

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 在我的 Spring applicationContext.xml 文件中声明:

<bean id="workflowDAO" class="com.test.WorkFlowDAO">
</bean>

仔细检查后,您会发现 Java 类和上下文 XML 文件中的两个 ID 不同。

workFlowDAO

workflowDAO

[两个ID中字母'f'不同]

因为即使使用这种配置,我的应用程序也能正常运行;我想知道,@Autowired 注释如何工作,以便在 bean ID 不完全匹配时它不会提示。

如果使用简单的 bean; Spring 会提示 bean 名称不匹配。

我正在 Websphere App Server 7.0 上使用 Spring 3.0.5 运行 J2EE 应用程序

如果需要更多信息,请告诉我。

最佳答案

@Autowired 按类型匹配 bean。不考虑 ID。

如果您在 XML 配置中声明另一个相同类型的 bean,Spring 会提示无法确定正确的 bean。

如果你想将 ID 与 @Autowired 一起使用,你可以通过使用 @Qualifier 来实现,尽管在这种情况下推荐使用 @Resource .

查找有关该主题的更多信息 here .

关于spring - Spring 3 中的@Autowired 注释行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8164381/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com