У меня есть проект Spring MVC. У меня есть контроллер класса, сервис и уровень dao.Почему @Autowired не работает вне класса контроллера весной mvc?
@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 не может создать объект и внутри контроллера работает отлично.
Я не знаю, что происходит.
Вот его мой сервлет-контекст: https://github.com/tsw1985/HelloHibernate/blob/master/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml
В нескольких словах, если я хочу, чтобы ввести одну зависимость с @Autowired из стороны класса контроллера, у меня будет та же самая проблема. Спасибо всем.
Пожалуйста, если вы поможете мне, вы спасете мою жизнь, потому что у меня есть одна неделя с этой проблемой.
Спасибо всем!
Какую версию Spring вы используете? – mkobit
Как насчет того, как вы создаете интерфейс, реализуете свой класс в созданном интерфейсе, а затем автоматически создаете интерфейс. –