我有一個使用註釋的彈簧控制器。我給這個控制器一個帶兩個參數的構造函數。我想要初始化控制器的兩種方法:構造函數注入和設置注入。Spring註釋控制器是否需要默認構造函數
@Controller("viewQuestionController")
@RequestMapping("/public/viewQuestions")
public class ViewQuestionController
{
@Resource(name="questionService")
private QuestionService questionService;
/*public ViewQuestionController()
{
int i=0;
i++;
}
*/
public ViewQuestionController(@Qualifier("questionService") QuestionService questionService)
{
this.questionService = questionService;
}
@Resource(name="questionService")
public void setQuestionService(QuestionService questionService)
{
this.questionService = questionService;
}
}
當我取消註釋默認構造函數時,控制器被正確啓動。但是,如果我不這樣做,我會得到一個BeanInstantiationException,找不到默認的構造函數;嵌套異常是java.lang.NoSuchMethodException。 因此,是我的配置註釋的構造函數是錯誤的還是在春天完全註釋的控制器總是需要一個默認的構造函數?
謝謝,使用@Autowired的第一個選項工作。我沒有嘗試@Inject,因爲這需要在應用程序中添加另一個jar。我想我會在稍後看@Resource的setter注入。 – 2010-11-07 15:01:04