有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何让@Repository工作?

我不明白为什么自动布线不能正常工作。我有一个使用spring 3的非web应用程序,因此在应用程序的主要方法中,我设置了如下创建应用程序上下文:

    ApplicationContext ctx = new ClassPathXmlApplicationContext(
                        DEFAULT_APP_CONTEXT);

而且.xml文件的顶部有自动布线工作所需的内容:

<context:annotation-config />
<context:component-scan base-package="star,hw" />

但是它不起作用。我有一个服务类,在hw包下有一个类级@Repository注释,但当尝试@Autowire时,我得到:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'inventoryDAO' is defined
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:527)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1083)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:274)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
    ... 77 more

我在日志文件中注意到一件奇怪的事情:

Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4440ece0: defining beans [*skipping*, inventoryDAOImpl, *skipping*]

这是我在@Repository上使用的类,但它实现了InventoryDAO。它在那里显示inventoryDAOImpl这不是不对吗?我能做些什么来找出问题所在

编辑:好吧,问题可能不在@Autowire,而在@Repository因为没有正确制作bean


共 (1) 个答案

  1. # 1 楼答案

    试试@Repository("inventoryDAO")