【发布时间】:2015-02-19 11:10:05
【问题描述】:
我有一个 Spring MVC 项目。我有一个类控制器、服务和 dao 层。
@Controller
public class HomeController {
@Autowired
private PersonFacade personFacade;
....
}
我有我的服务类
@Service
@Transactional
public class PersonFacadeImpl implements PersonFacade{
@Autowired
private PersonDAO personDAOdef;
//code ....
}
最后是我的 DAO 类
@Repository
public class PersonDAOImpl implements PersonDAO{
@Autowired
private SessionFactory sessionFactory;
//code
}
这很好用,我的问题就在这里:
我做了一个类监听器,我想将 PersonFacade 与 @Autowired 一起使用
public class PersonListener extends AbstractRepositoryEventListener<Person> {
@Autowired
private PersonFacade personFacade;
.... //code
}
我有这个例外:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'personListener': Injection of autowired dependencies failed; nested exception is
org.springframework.beans.factory.BeanCreationException: Could not autowire field:
private com.gabrielglez.main.Facade.PersonFacade
com.gabrielglez.main.evenlistener.PersonListener.personFacade; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of
type [com.gabrielglez.main.Facade.PersonFacade] found for dependency: expected at least 1
bean which qualifies as autowire candidate for this dependency. Dependency annotations:
{@org.springframework.beans.factory.annotation.Autowired(required=true)}
我在其他包中有这个类,我不知道为什么在这个类中 Spring 无法创建对象并且控制器内部工作正常。
我不知道发生了什么。
这是我的 servlet 上下文:https://github.com/tsw1985/HelloHibernate/blob/master/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml
简而言之,如果我想在控制器类之外注入一个带有 @Autowired 的依赖项,我也会遇到同样的问题。谢谢大家。
如果你帮助我,你会救我的命,因为我有一个星期的时间来解决这个问题。
谢谢大家!!
【问题讨论】:
-
你用的是什么版本的 Spring?
-
你如何创建接口,将你的类实现到制作的接口,然后自动装配接口。
标签: java spring-mvc exception autowired