我编写了一个接口,但是在注入是出现错误,希望那个高手帮帮忙,看下哪里出错了!!

解决方案 »

  1.   

     No matching bean of type [com.jeecms.cms.manager.main.CmsContentItemMng] found for dependency
      

  2.   

    Error creating bean with name 'cmsContentItemAct': Injection of autowired dependencies failed;
      

  3.   

    CmsContentItemAct代码:
    @Controller
    public class CmsContentItemAct {
    private static final Logger log = LoggerFactory
    .getLogger(CmsContentItemAct.class);

    @RequestMapping("/ite/v_list.do")
    public String list(Integer typeId, Boolean isChannel,
    HttpServletRequest request, ModelMap model) {
    ContentType m = contentTypeMng.findById(typeId);
    List<CmsContentItem> list = manager.getList(typeId, isChannel, true);
    model.addAttribute("model", m);
    model.addAttribute("fieldList", getFieldList(list));
    model.addAttribute("typeId", typeId);
    model.addAttribute("isChannel", isChannel);
    model.addAttribute("list", list);
    return "item/list_content"; } private List<String> getFieldList(List<CmsContentItem> items) {
    List<String> list = new ArrayList<String>(items.size());
    for (CmsContentItem item : items) {
    list.add(item.getField());
    }
    return list;
    }
    @Autowired
    private ContentTypeMng contentTypeMng;
    @Autowired
    private CmsContentItemMng manager;}
      

  4.   

    看上去应该是你的配置文件有问题,你首选应该去人一下你的配置文件是否有写错的地方,如果没有你在查找一下是否有这个bug。
      

  5.   

    配置应该没问题的 ,我在这个action中注入其他的接口是可以的!!
      

  6.   

    为什么不设为publicprivate List<String> getFieldList(List<CmsContentItem> items) {
     List<String> list = new ArrayList<String>(items.size());
     for (CmsContentItem item : items) {
     list.add(item.getField());
     }
     return list;
     }
     
      

  7.   

    这个应该不关事的!!我的错误是该是
    @Autowired
    private ContentTypeMng contentTypeMng;
    @Autowired
    private CmsContentItemMng manager;
    但是我找不出错误在那!!
      

  8.   

    应该是CmsContentItemMng这个接口的注入有问题!!
    注入失败通常有哪些原因??
      

  9.   

    CmsContentItemMng代码:
    @Service
    @Transactional
    public class CmsContentItemMngImpl implements CmsContentItemMng { @Transactional(readOnly = true)
    public List<CmsContentItem> getList(Integer typeId, boolean isChannel,
    boolean hasDisabled) {
    return dao.getList(typeId, isChannel, hasDisabled);
    } @Transactional(readOnly = true)
    public CmsContentItem findById(Integer id) {
    CmsContentItem entity = dao.findById(id);
    return entity;
    }

    public CmsContentItem save(CmsContentItem bean, Integer typeId) {
    bean.setContentType(contentTypeMng.findById(typeId));
    return save(bean);
    }

    public CmsContentItem save(CmsContentItem bean) {
    bean.init();
    dao.save(bean);
    return bean;
    }

    public void saveList(List<CmsContentItem> list) {
    for (CmsContentItem item : list) {
    save(item);
    }

    }

    //内容类型没有优先级排序!!!
    public void updatePriority(Integer[] wids, Integer[] priority,
    String[] label, Boolean[] single, Boolean[] display) {
    CmsContentItem item;
    for (int i = 0, len = wids.length; i < len; i++) {
    item = findById(wids[i]);
    item.setLabel(label[i]);
    item.setPriority(priority[i]);
    item.setSingle(single[i]);
    item.setDisplay(display[i]);
    }

    }

    public CmsContentItem update(CmsContentItem bean) {
    Updater<CmsContentItem> updater = new Updater<CmsContentItem>(bean);
    CmsContentItem entity = dao.updateByUpdater(updater);
    entity.emptyToNull();
    return entity;
    }
    public CmsContentItem deleteById(Integer id) {
    CmsContentItem bean = dao.deleteById(id);
    return bean;
    } public CmsContentItem[] deleteByIds(Integer[] ids) {
    CmsContentItem[] beans = new CmsContentItem[ids.length];
    for (int i = 0, len = ids.length; i < len; i++) {
    beans[i] = deleteById(ids[i]);
    }
    return beans;
    } //-----------------------------------------------
    private ContentTypeMng contentTypeMng;
    private CmsContentItemDao dao; @Autowired
    public void setContentTypeMng(ContentTypeMng contentTypeMng) {
    this.contentTypeMng = contentTypeMng;
    } @Autowired
    public void setDao(CmsContentItemDao dao) {
    this.dao = dao;
    }
      

  10.   

    注解一般不是写方法上面吗?有没有set方法?
      

  11.   

    你说的是这个@Autowired吗?写在这里可以吧!!还有有了这个注解后应该是自动装载的,不用set方法了吧?
      

  12.   

    No matching bean of type [com.jeecms.cms.manager.main.CmsContentItemMng] found for dependency
    是web.xml里面没有匹配的,你查查你的web.xml
      

  13.   

    楼上的对了!!唉!漏配了manger和dao,一直以为自己配正确了,所以排除了xml错误的可能性,最后回去好好看了下,发现漏配了!!