在Spring的上下文中引用“自动检测”bean

时间:2013-05-14 14:25:16

标签: java spring dependency-injection

我将spring配置为使用

自动检测某些DAOS
<context:component-scan base-package="com.mycomp.app" />
<tx:annotation-driven />.

@Repository("transactionDao")
public class TransactionDao {
...
}

现在我在上下文中手动配置另一个引用此bean的bean。

<property name="schedulerContextAsMap">
    <map>
       <entry key="transactionDao" value-ref="transactionDao" />
    </map>
</property>

现在春天抱怨:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionDao' is defined

是否可以在上下文中引用自动检测到的bean?

1 个答案:

答案 0 :(得分:0)

Is it possible to reference auto detected bean inside context?

是的,这是非常可能的。

为了查看未找到transactionDao bean的原因,您可以验证以下内容:

  1. TransactionDao应该在classpath中并且位于com.mycomp.app的某个子包中

  2. 如果已经存在Step-1,则运行具有Logger级别的应用程序,将 org.springframework 设置为DEBUG,您可以在spring的启动日志中看到所有bean都已初始化。