微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java.lang.IllegalStateException:Autowired annotation需要至少一个参数

无法自动装配和运行Spring Web应用程序.

错误

java.lang.IllegalStateException: Autowired annotation requires at least one argument: public main.java.com.springapp.mvc.controller.DSlrservletController()

DSlrservletController:

package main.java.com.springapp.mvc.controller;

import main.java.com.springapp.mvc.dao.DSLRDAO;
import main.java.com.springapp.mvc.model.DSLR;
import main.java.com.springapp.mvc.pckg.DSLRForm;
import main.java.com.springapp.mvc.pckg.DSLRValidaor;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.modelattribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.servletexception;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.Serializable;
import java.util.*;

@Controller
public class DSlrservletController   {
    static Logger logger = Logger.getLogger(DSlrservletController.class);


    private DSLR DSLR;
    private DSLRDAO dslrDAO;
    private DSLR dslr;



    @Autowired
    public DSlrservletController() {
        this.dslrDAO = new DSLRDAO();
    }

    public void init() {logger.error("DSlrservlet.init(): just started"); }

@RequestMapping(value = "/s",method = RequestMethod.GET)
public String showHTMLResponse(@modelattribute("dslrs") DSLR dslrs[],@modelattribute("dslr") DSLR dslr,@modelattribute("dslrErrors") HashMap dslrErrors,@modelattribute ("dslrform") DSLRForm dslrForm,@RequestParam("id") String paramId,@RequestParam("action") String paramAction,Model model){

    if(paramId == null || paramId.equals("")){
        //show_all_dslrs
        dslrs = getAllDslrs();    // DSLR adslrs[] -> to MODEL; HOW?
       return "dslrs";
    }else{
        //show_this_dslr;
        HashMaparamId);
        dslr = (DSLR) dslrHashMap.get("dslr");
        dslrForm = (DSLRForm)dslrHashMap.get("dslrForm");
        dslrErrors = (HashMap)dslrHashMap.get("dslrErrors");

            if(dslr != null){

                return "dslr";
            }

            else{
                return "error";
            }


    }
}

@RequestMapping(value = "/s",method = RequestMethod.POST)
public String showHTMLResponsePOST(@modelattribute("dslrs") DSLR dslrs[],@modelattribute("dslrErrors") HashMaparam("dslr_model") String paramModel,@RequestParam("price") String paramPrice,@RequestParam("description") String paramDescription,Model model){
    int iStatusCode = 0;
    if(paramAction.equals("save") )
        iStatusCode = saveDSLR(paramId,paramModel,paramPrice,paramDescription,dslrErrors,dslrForm);    // POST

    return "dslrs";

}

    private int saveDSLR(String paramId,String paramModel,String paramPrice,String paramDescription,HashMaparamId);
            dslrForm.setModel(paramModel);
            dslrForm.setPrice(paramPrice);
            dslrForm.setDescription(paramDescription);

            HashMap hashmap = dslrValidaor.Validate(dslrForm);
            if(hashmap.size() > 0) {
                context_dslrForm = dslrForm;
                context_dslrErrors = hashmap;
                byte0 = -1;
            } else{
                DSLRDAO planedao = new DSLRDAO();
                DSLR dslr = new DSLR();
                dslr.setDslrId(Integer.parseInt(paramId));
                dslr.setModel(paramModel);
                dslr.setPrice(Integer.parseInt(paramPrice));
                dslr.setDescription(paramDescription);
                planedao.update(dslr);
            }
        }
        catch(Exception exception)
        {
            logger.error((new StringBuilder()).append("DSlrservlet.saveDSLR():").append(exception.getMessage()).toString());
            byte0 = -1;
        }
        return byte0;

    }

    private DSLR[] getAllDslrs(){
        DSLR adslrs[] = null;
        try
        {
            DSLRDAO DSLRDAO = new DSLRDAO();
            adslrs = (DSLR[])DSLRDAO.findAll();
        }
        catch(Exception exception)
        {
            logger.error((new StringBuilder()).append("Planeservlet.getAllPlanes():").append(exception.getMessage()).toString());
        }
//        request.setAttribute("dslrs",adslrs);
        return adslrs;
    }

    private HashMaplrservlet.getDSLRById():").append(exception.getMessage()).toString());
        }
        return map;
    }
    @Autowired
    public void setDslrDAO(DSLRDAO dslrDAO) {
        this.dslrDAO = dslrDAO;
    }

    public DSLRDAO getDslrDAO() {
        return dslrDAO;
    }
    @Autowired
    public void setDSLR(DSLR DSLR) {
        dslr = DSLR;
    }

    public DSLR getDSLR() {
        return dslr;
    }
}

为什么@Autowired注释会返回错误?怎么解决

最佳答案
构造函数不是有效的setter方法或实例变量

@Autowired
private DSLRDAO dslrDAO;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐