В настоящее время я столкнулся с проблемой в конфигурации Autowire между контроллером и уровнем обслуживания.Отсутствие отборочного компонента типа весной 4
Вход
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.ults.hrms.service.EmployeeService] 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)}
Контроллер
@Controller
@RequestMapping("/")
public class AppController extends ConvertReqDataToJSON {
final static Logger logger = Logger.getLogger(AppController.class);
/* creating bean definition in Spring container(DI) */
@Autowired
EmployeeService employeService;
@RequestMapping(value = { "/listuser" }, method = RequestMethod.GET)
public @ResponseBody List<Employe> listUsers() throws Exception {
return employeService.findAllUsers();
}
}
Сервис
@Service
public class EmployeeService extends GenericDaoImpl<Employe>{
public List<Employe> findAllUsers() throws Exception {
return findAllUsers();
}
}
GenericDao
@SuppressWarnings("unchecked")
@Transactional
@Repository
public abstract class GenericDaoImpl<T> implements IGenericDao<T> {
protected Class<T> entityClass;
@Autowired
private SessionFactory sessionFactory;
public T findAll() throws Exception{
Criteria criteria =sessionFactory.getCurrentSession().createCriteria(getEntityClass()).addOrder(Order.asc("firstName"));
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
return (T) criteria.list();
}
}
автоматического связывания не работает по какой-то причине ... "No qualifying bean of type com.ults.hrms.service.EmployeeService
.
Я пробовал с различными комбинациями @Component
и @Transactional
тоже.
Извините за большой код, но я не знаю, что может вызвать эту ошибку.
Почему услуга распространяется на DAO? что выглядит странно – Jobin
Это общий dao, почему я расширяюсь. Неправильно или нет? – jermiya
вы не должны делать это в слое службы – Jobin