簡體   English   中英

春季4中沒有任何類型的合格Bean

[英]No qualifying bean of type in Spring 4

目前,我在控制器和服務層之間的Autowire配置中遇到問題。

日志記錄

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不同組合。

抱歉,有很多代碼,但是我不知道是什么導致了該錯誤。

No qualifying bean of type [com.ults.hrms.service.EmployeeService]的根本原因是自動裝配的屬性名稱不正確。

更改

@Autowired
EmployeeService employeService;

@Autowired
EmployeeService employeeService ;

你可以這樣

@Service("employeService")
public class EmployeeService extends GenericDaoImpl<Employe>{

    public List<Employe> findAllUsers() throws Exception {
        return findAllUsers();
    }
}

@Service ***(“ employeService”)***這使您可以選擇自動裝配時要使用的名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM